2009-04-19 17 views
25

Sono in procinto di creare una demo ASP.NET MVC app a scopo didattico.Esempio di base AJAX con ASP.NET MVC?

Ho un'immagine/collegamento che contrassegna un post come offensivo. Vorrei chiedere al server tramite AJAX di contrassegnare in modo offensivo e verificare che l'utente abbia questa capacità.

Se l'utente lo fa, quindi voglio contrassegnare il post come offensivo nel database e restituire che il flag ha attraversato. Se l'utente NON ha il diritto di contrassegnare gli oggetti, vorrei restituire un messaggio negativo al cliente in modo da poter visualizzare una bella casella jQuery che afferma che non è stata eseguita.

Sto provando a fare tutto questo senza un postback completo/aggiornamento.

Qualcuno ha collegamenti ad esempi di semplici richieste AJAX fatte con MVC?

risposta

24

In realtà è piuttosto semplice con jQuery. Diciamo che il tuo link è qualcosa di simile:

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

Creare un javascript per chiamare l'azione nel controller per controllare e segnala come necessario:

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 
     } 
    }); 
} 

In te metodo di azione nel controller sarà probabilmente un aspetto In questo modo:

[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

Perché nel codice di esempio riportato sopra dovrebbe non solo tornare checkPermission(); ? –

+4

perché potresti voler eseguire qualche logica/azione aggiuntiva se CheckPermission restituisce true - vedi l'area // flag post –