36 votes

Quel est le bon modèle pour utiliser JQuery Ajax et ASP.Net Mvc?

Je suis très nouveau à la fois le framework Mvc ainsi que JavaScript et JQuery. J'essaie de comprendre la bonne façon de structurer les appels Ajax.

Disons que j'ai un "Voter" bouton similaire à ce que vous voyez sur StackOverflow. Lorsque l'utilisateur clique dessus j'ai besoin de mettre à jour le décompte des voix dans la base de données et le retour de la nouvelle valeur à l'INTERFACE utilisateur. Je suis actuellement la réalisation de ce en ayant une action appelée "VoteUp" sur le "controller posts" qui prend un "int postID" comme paramètre.

public PostsController : Controller
{
    public ActionResult VoteUp(int postId)
    {
        //Increment Post Vote Count
        return Json(voteCount); //Return just the new vote count as a JSon result.
    }
}

Je suis alors à l'appel de cette méthode via ajax en invoquant l'url "http://mydomain.com/posts/voteUp?postId=5". J'ai ensuite un retour JSon ActionResult avec la nouvelle valeur de mise à jour de l'INTERFACE utilisateur avec.

Est-ce la bonne façon de mettre en œuvre cette? Encore une fois, je suis totalement nouveau pour javascript et jquery. J'ai l'habitude de tout faire en un clic de gestionnaires d'événements dans asp.net webforms. Des conseils seraient appréciés.

12voto

Craig Stuntz Points 95965

Oui, on dirait que vous avez raison.

Notez cependant que si vous modifiez postId en Id, vous pouvez appeler avec une URL telle que:

http://example.com/posts/voteUp/5

(Avec le routage par défaut.) C'est une question de préférence personnelle.

3voto

Ryan Lanciaux Points 4835

J'aborderais ceci en utilisant jQuery et JsonResult Controller. Votre code jQuery appellera JsonResult, qui transmettra les informations pertinentes au code modèle afin de gérer l'ajout d'un nouveau vote. J'ai écrit un bref tutoriel sur des concepts similaires qui est disponible à l' adresse http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X