Question

Voyant que notre équipe gère un intranet qui a des utilisateurs clients garantis que javascript est activé, nous savons que nous pouvons intervenir et commencer à utiliser jQuery de manière plus approfondie. Notre système est très volumineux. Même si nous utilisons des zones dans notre application ASP.NET MVC, le nombre de pages à ajouter, modifier, supprimer et afficher des ensembles de données par sous-système d'une zone est vraiment considérable. Un sous-système d'une zone peut avoir environ vingt tables de données. S'il existe vingt tables de données et que vous avez des pages individuelles pour les ajouter, les modifier et les afficher, cela signifie qu'il existe un total de 60 pages. Imaginons maintenant qu’il y ait vingt sous-systèmes par zone, puis qu’une zone ait 20 * 60 pages et que notre intranet compte environ 15 zones. Vous obtenez le point, c'est énorme.

Pour en venir à mon vrai point, je souhaite réduire ce problème en utilisant les capacités de jQuery consistant à avoir un tableau de données sur une page, en cliquant sur "supprimer". et il me donne un dialogue de suppression avec un bouton de confirmation qui soumet ensuite le formulaire, redirige vers l'action correcte et effectue le travail pour moi. J'ai maintenant besoin de conseils dans les domaines suivants:

  1. Si je souhaitais supprimer sans rediffuser du tout en utilisant ASP.NET MVC, quelle est la procédure à suivre? Cela inclut appuyer sur supprimer, éteindre et vérifier qu'il est capable de supprimer (les relations FK doivent être traitées de manière correcte), puis, si possible, supprimer et supprimer la ligne de la table dans la vue, le tout sans actualiser la page.
  2. Comment appeler l'action de suppression d'un processus asynchrone à l'aide de jQuery? Est-il sage de le faire? Nous utilisons généralement Html.ActionLink . Est-ce que je devrais l'envelopper dans un formulaire?
  3. Il en va de même pour l'édition et la mise à jour, encore une fois, quel est le meilleur moyen de le faire?

Je recherche une solution élégante, et quelque chose qui n’est pas difficile à appliquer pour chaque page pour laquelle je dois le faire. Toute contribution serait très appréciée.

Était-ce utile?

La solution

Je travaille sur un projet qui utilise des liens pour déclencher des actions de suppression via AJAX POST (aucune publication).

$("a.deleteLink").click(function(event)
{
    event.preventDefault();
    if (confirm("Are you sure you want to delete this section?"))
    {
        //TODO Display processing indicator

        var myId = /* id of element */ ;

        $.post("/Section/Delete", { id: myId }, function(data)
        {
            if (data == "Success")
            {
                //handle success
                //TODO Fade out element using .fadeOut()
            }
            else
            {
                //handle error
            }
        });
    }
});

La méthode du contrôleur est simplement dans /Controllers/SectionController.cs. N'accepte que POST comme toute action modifiant la base de données.

    private SectionRepository secRepo = new SectionRepository();

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Delete(long id)
    {
        Section sec = secRepo.GetById(id);

        secRepo.Delete(sec);
        secRepo.Save();

        return Content("Success");
    }

Autres conseils

Vous venez de regarder une vidéo sur certains modèles que vous pouvez obtenir pour ASP.NET MVC avec Subsonic. Bien que je n’aie toujours pas implémenté ceci ou même essayé, cela a l’air incroyable! Consultez ici .


Je ne sais pas si cette option est réalisable pour vous ou non, mais nous avions récemment un besoin similaire au vôtre et nous publions notre application principale en tant qu'application ASP.NET MVC (à l'aide de jQgrid ), puis une application secondaire ASP Forms Web Forms pour nos fonctionnalités Admin à l'aide de Dynamic Data. Cela a très bien fonctionné et nous a fait gagner beaucoup de temps.

Cela ressemble également à DynamicData et MVC . se réuniront dans certaines des prochaines versions.

Autre lecture ...
* David Hayden
* rbqsoft
* Wiki Sharp Architecture

Chad Myers a un bon article à ce sujet.

une de Dino Esposito.

Si vous souhaitez également lancer la boîte de dialogue jQuery vers la partie, cette Le message de Ricardo Covo fait du bon travail

entrer la description de l'image ici

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top