Ich versuche, eine <div>
in meiner Ansicht zu aktualisieren, wenn der Benutzer auf eine Ajax.ActionLink
klickt. Es navigiert jedoch immer die gesamte Seite, anstatt die Antwort des Servers in das angegebene Element einzufügen.Wie kann ich Ajax.ActionLink ein Element aktualisieren anstatt die ganze Seite zu navigieren?
Ich fühle mich wie ich mache alles in this example, aber auch nach dem Erstellen der einfachste Testfall kann ich immer noch nicht das Verhalten, das ich will.
Im Testfall, der, ich laden /Company/test
und nach einem Klick auf „Go!“, Erwartete ich die <div>
ersetzt werden mit „Fertig“, sondern die ganze Seite navigiert zu /Company/test_ajax
folgt.
Ich bin sicher, dass ich hier etwas vermisse. Danke im Voraus.
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>
Ich bin mir ziemlich sicher, dass das mein Problem war. Ich hatte Probleme, die richtigen Quellen für Skripte und Stile zu bekommen, wenn ich nicht die Syntax Url.Content ("~/project/path/script.js") verwendete. –
Für MVC3 und höher verwenden Sie "jquery.unobtrusive-ajax.js" – RickAndMSFT