Próbuję zaktualizować <div>
w moim widoku, gdy użytkownik kliknie na Ajax.ActionLink
. Jednak zawsze porusza się po całej stronie, zamiast wstawiać odpowiedź serwera do wskazanego elementu.Jak sprawić, aby Ajax.ActionLink zaktualizował element zamiast nawigować po całej stronie?
Czuję, że robię wszystko w this example, ale nawet po utworzeniu najprostszego przypadku testowego nadal nie mogę utworzyć pożądanego zachowania.
W przypadku testowego, który następuje, załadować /Company/test
i po kliknięciu „Go!”, Spodziewałem się <div>
być zastąpione „Wszystko zrobione”, ale zamiast tego cała strona nawiguje do /Company/test_ajax
.
Jestem pewien, że czegoś tutaj brakuje. Z góry dziękuję.
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>
Jestem prawie pewien, że to był mój problem. Miałem problemy z uzyskaniem właściwych źródeł skryptów i stylów, chyba że użyłem składni Url.Content ("~/project/path/script.js"). –
Dla MVC3 i wyżej użyj "jquery.unobtrusive-ajax.js" – RickAndMSFT