2009-04-19 6 views
25

Je suis en train de faire une démo ASP.NET MVC application à des fins éducatives.Exemple AJAX de base avec ASP.NET MVC?

J'ai une image/lien qui marque un poste comme offensive. Je voudrais demander au serveur via AJAX de signaler l'offensive et vérifier que l'utilisateur a cette capacité.

Si l'utilisateur le fait, alors je veux marquer le message comme offensant dans la base de données et retourner que le drapeau est passé. Si l'utilisateur finit par ne pas avoir le droit de marquer les articles, je voudrais retourner un message négatif au client afin que je puisse faire apparaître une boîte de jQuery sympa indiquant qu'il n'a pas passé. J'essaie de faire tout cela sans une publication/actualisation complète.

Est-ce que quelqu'un a des liens vers des exemples de requêtes AJAX simples effectuées avec MVC?

Répondre

24

C'est en fait assez facile avec jQuery. Disons que votre lien est quelque chose comme ceci:

<a href="javascript:flagInappropriate(<%=Model.PostId%>);">Flag as inappropriate</a> 

Créer un javascript pour appeler l'action dans votre contrôleur pour vérifier et marquer comme nécessaire:

function flagInappropriate(postId) { 
    var url = "<CONTROLLER>/<ACTION>/" + postId; 
    $.post(url, function(data) { 
     if (data) { 
      // callback to show image/flag 
     } else { 
      // callback to show error/permission 
     } 
    }); 
} 

En vous méthode d'action dans votre contrôleur se penchera probablement comme ceci:

[AcceptVerbs("POST")] 
public bool FlagAsInappropriate(int id) { 
    // check permission 
    bool allow = CheckPermission(); 

    // if allow then flag post 
    if (allow) { 
     // flag post 

     return true; 
    } else { 
     return false; 
    } 
} 
+0

Pourquoi votre code exemple ci-dessus ne vous renverra pas seulement checkPermission(); ? –

+4

parce que vous voudrez peut-être faire une logique/action supplémentaire si CheckPermission retourne true - voir la section // post de l'indicateur –