2009-07-26 6 views
7

Je ne comprends pas exactement comment ASP.NETs ActionLinks fonctionne. Je vois qu'ils ont un gestionnaire d'événement pour OnSuccess et OnFailure, mais je ne trouve rien qui décrive comment le succès et l'échec sont déterminés.Comment OnSuccess est-il mesuré pour un ASP.NET MVC ActionLink?

Je construis une application ASP.NET MVC et à l'intérieur de celle-ci j'ai un Ajax.ActionLink qui me permet de "voter" sur des éléments utilisant AJAX ... similaire à Digg. L'Actionlink lance mon contrôleur et sa méthode ... tout fonctionne bien ici.

Dans mon contrôleur j'ai une logique qui vérifie si cet utilisateur a déjà voté. Je voulais utiliser "OnSuccess" et "OnFailure" pour répondre différemment. Je veux qu'il fonctionne ma fonction Javascript "PlusOneVote" si l'utilisateur n'a jamais voté (C'est le scénario OnSuccess) et si l'utilisateur a voté avant que je veuille exécuter ma fonction javascript "CheaterYouCantVoteTwice". Est-ce que quelqu'un peut expliquer comment OnFailure et OnSuccess sont mesurés? Est-ce que quelqu'un peut expliquer comment je peux construire cette logique ... où je peux exécuter une fonction Javascript dans une branche (dans mon cas, si l'utilisateur n'a jamais voté) et une autre fonction Javascript dans le cas où l'utilisateur a déjà voté?

Répondre

5

Le succès est mesuré en fonction du code d'état HTTP de la réponse ajax, et rien de plus. Fondamentalement, si vous obtenez un code de niveau 400 (l'un des 400 - 417), vous aurez un échec. Si vous obtenez un 200, c'est considéré comme un succès.

Je pense que vous devrez examiner le contenu des données dans votre gestionnaire OnSuccess pour déterminer ce qu'il faut faire, plutôt que de considérer un type de message d'échec et un type de message de réussite. Du point de vue ajax, il a réussi si une réponse valide a été renvoyée.

Questions connexes