Comment puis-je faire de l'Ajax.ActionLink mise à jour d'un élément au lieu de parcourir l'ensemble de la page?
Je suis en train de mettre à jour un <div>
, à mon avis, lorsque l'utilisateur clique sur un Ajax.ActionLink
. Cependant, il dirige toujours la totalité de la page plutôt que d'insérer la réponse du serveur dans l'élément que j'ai préciser.
J'ai l'impression que je fais tout dans cet exemple, mais même après la création de la plus simple des cas de test je ne peux toujours pas créer sur le comportement que je veux.
Dans le cas de test qui suit, je charge /Company/test
et après avoir cliqué sur "Go!", Je m'attendais à la <div>
être remplacé par "Tout fait", mais plutôt l'ensemble de la page pour naviguer /Company/test_ajax
.
Je suis sûr que je suis absent quelque chose ici. Merci à l'avance.
CompanyController
public ActionResult test()
{
return View();
}
public ActionResult test_ajax()
{
return Content("All done");
}
test.aspx
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
</head>
<body>
<h2>test</h2>
<%= Ajax.ActionLink("Go!", "test_ajax",
new AjaxOptions {
UpdateTargetId="viewport"
}) %>
<div id="viewport">Replace me!</div>
</body></html>
OriginalL'auteur Stephen Jennings | 2009-05-17
Vous devez vous connecter pour publier un commentaire.
Ton exemple fonctionne comme prévu sur mon ordinateur. Vérifiez si les fichiers MicrosoftAjax.js et MicrosoftMvcAjax.js sont réellement présentes dans le ../../dossier Scripts.
Pour MVC3 et l'augmentation de l'utilisation "jquery.unobtrusive-ajax.js"
OriginalL'auteur Alexander Prokofyev
Si Vous êtes en utilisant MVC 3, vous devrez inclure "jquery.unobtrusive-ajax.js" comme référence. Il devrait déjà être présent dans votre dossier Scripts. \m/
OriginalL'auteur Vadois
J'ai trouvé que l'ajout de jquery.unobtrusive-ajax.js pour ma mise en page.cshtml page évite toutes sortes de stupide "pourquoi n'est-ce pas?" des moments lorsque l'on travaille avec l'ajax objets/méthodes.
OriginalL'auteur roblem
J'ai dû modifier le AjaxOptions dans mon ActionLink appel pour le faire fonctionner:
OriginalL'auteur nkirkes
Eu de problème avec ce trop. Je suis l'aide de VS2013 et jquery-1.10.2.min.js. Eu à utiliser une combinaison de 4 fichiers js pour le faire fonctionner. Espérons que cet exemple de code aide à quelqu'un.
Test.cshtml:
OriginalL'auteur live-love