ASP.NET MVC 3 (Rasoir) Ajax.ActionLink - Ce que je fais mal?
D'essayer d'avoir un AJAX d'action de lien quand on clique dessus, doit faire un HttpGet
à une méthode d'action qui renvoie une PartialViewResult
et lui enfonce le code HTML dans une balise div.
Voici mon avis:
<div id="admin-options" class="admin"></div>
@Ajax.ActionLink("Show Admin Options", "ShowOptions", "Post", new { area = "Admin" }, new AjaxOptions { UpdateTargetId = "admin-options", HttpMethod = "GET" })
Voici la méthode de l'action:
public class PostController : Controller
{
[HttpGet]
[Authorize(Roles="Admin")]
public PartialViewResult ShowOptions()
{
return PartialView();
}
}
Voici le code HTML qu'il génère:
<a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#admin-options" href="/Admin/Post/ShowOptions">Show Admin Options</a>
Semble bien pour moi.
Mais au lieu de faire un appel AJAX, il procède régulièrement à un HTTP GET via l'adresse URL du navigateur et redirige vers /Admin/Post/ShowOptions.
Évidemment im manque quelque chose - mais quoi?
Vous devez vous connecter pour publier un commentaire.
Assurez-vous d'avoir le discret AJAX bibliothèque javascript inclus dans votre page.
Et pour ceux qui utilisent le moteur de vue Razor...
Vous pouvez également inclure le InsertionMode option dans le AjaxOptions. Je suis sûr qu'il y a un comportement par défaut si vous l'exclure mais il est préférable de définir explicitement pour ce genre de choses.