ASP.NET MVC 3 (Razor) Ajax.ActionLink – Qu’est-ce que je fais mal?

Essayer d’avoir un lien d’action AJAX qui, une fois cliqué, devrait faire un HttpGet à une méthode d’action qui retourne un PartialViewResult et PartialViewResult le HTML dans un div.

Voici ma vue:

 
@Ajax.ActionLink("Show Admin Options", "ShowOptions", "Post", new { area = "Admin" }, new AjaxOptions { UpdateTargetId = "admin-options", HttpMethod = "GET" })

Voici la méthode d’action:

 public class PostController : Controller { [HttpGet] [Authorize(Roles="Admin")] public PartialViewResult ShowOptions() { return PartialView(); } } 

Voici le code HTML qu’il génère:

 Show Admin Options 

Ça me va

Mais au lieu de faire un appel AJAX, il effectue un GET HTTP normal via l’URL du navigateur et redirige vers / Admin / Post / ShowOptions .

De toute évidence, il manque quelque chose – mais quoi?

Assurez-vous d’avoir la bibliothèque javascript AJAX discrète incluse dans votre page.

  

Et pour ceux qui utilisent le moteur de vue Razor …

  

Vous souhaiterez peut-être également inclure l’option InsertionMode dans AjaxOptions. Je suis sûr qu’il y a un comportement par défaut si vous l’excluez, mais il est préférable de le définir explicitement pour des choses comme ça.