Estoy tratando de actualizar un <div>
en mi vista cuando el usuario hace clic en un Ajax.ActionLink
. Sin embargo, siempre navega por toda la página en lugar de insertar la respuesta del servidor en el elemento que especifico.¿Cómo hago que Ajax.ActionLink actualice un elemento en lugar de navegar por toda la página?
Siento que estoy haciendo todo en this example, pero incluso después de crear el caso de prueba más simple todavía no puedo crear el comportamiento que quiero.
En el caso de prueba que sigue, cargar /Company/test
y después de hacer clic en "Go!", Me espera la <div>
que ser sustituido por "Todo hecho", sino que toda la página se desplaza a /Company/test_ajax
.
Estoy seguro de que me falta algo aquí. Gracias por adelantado.
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>
Estoy bastante seguro de que este era mi problema. Tuve problemas para obtener las fuentes correctas para los scripts y estilos a menos que use la sintaxis Url.Content ("~/project/path/script.js"). –
Para uso MVC3 y superior "jquery.unobtrusive-ajax.js" – RickAndMSFT