Sto tentando di aggiornare un <div>
nella mia vista quando l'utente fa clic su un Ajax.ActionLink
. Tuttavia, naviga sempre l'intera pagina anziché inserire la risposta del server nell'elemento che specifica.Come faccio a fare in modo che Ajax.ActionLink aggiorni un elemento invece di navigare nell'intera pagina?
Mi sento come se stessi facendo tutto in this example, ma anche dopo aver creato il caso di test più semplice non riesco ancora a creare il comportamento che voglio.
Nel caso di test che segue, mi carico /Company/test
e dopo aver fatto clic su "Go!", Mi aspettavo che il <div>
essere sostituito con "Tutto fatto", ma invece l'intera pagina naviga a /Company/test_ajax
.
Sono sicuro che mi manca qualcosa qui. Grazie in anticipo.
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>
Sono abbastanza sicuro che questo era il mio problema. Ho avuto problemi nel trovare le giuste fonti per script e stili a meno che non avessi usato la sintassi Url.Content ("~/project/path/script.js"). –
Per MVC3 e versioni successive "jquery.unobtrusive-ajax.js" – RickAndMSFT