Cómo usar Ajax.ActionLink?

Antes que nada, ¿dónde está la documentación para los métodos Ajax.* En asp.net mvc?

¿ Ajax.ActionLink puede usar Ajax.ActionLink para llamar a una acción, obtener una vista parcial, abrir una ventana modal y colocar el contenido en ella?

Claro, una pregunta muy similar se hizo antes. Configure el controlador para solicitudes ajax:

 public ActionResult Show() { if (Request.IsAjaxRequest()) { return PartialView("Your_partial_view", new Model()); } else { return View(); } } 

Establezca el enlace de acción como desee:

 @Ajax.ActionLink("Show", "Show", null, new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "dialog_window_id", OnComplete = "your_js_function();" }) 

Tenga en cuenta que estoy usando el motor Razor view y que sus AjaxOptions pueden variar según lo que desee. Finalmente mostrarlo en una ventana modal. Se sugiere el diálogo jQuery UI .

@ Ajax.ActionLink requiere la biblioteca jQuery AJAX Unobtrusive. Puedes descargarlo a través de nuget:

 Install-Package Microsoft.jQuery.Unobtrusive.Ajax 

A continuación, agregue este código a su Vista:

 @Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js") 

Ajax.ActionLink solo envía una solicitud ajax al servidor. Lo que sucede en el futuro realmente depende del tipo de datos que se devuelvan y de lo que haga la secuencia de comandos del lado del cliente. Puede enviar una vista parcial para una llamada ajax o json, xml, etc. Ajax.ActionLink tiene sin embargo diferentes devoluciones de llamada y parámetros que le permiten escribir el código js en diferentes eventos. Puede hacer algo antes de enviar la solicitud o de onComplete . de manera similar, tiene una callback onSuccess. Aquí es donde pone su código JS para manipular el resultado devuelto por el servidor. Simplemente puede volver a colocarlo en UpdateTargetID o puede hacer cosas extravagantes con este resultado utilizando jQuery o alguna otra biblioteca JS.

Para mí, esto funcionó después de que descargué la biblioteca discreta AJAX vía NuGet:

  Search and install via NuGet Packages: Microsoft.jQuery.Unobtrusive.Ajax 

Luego agregue en la vista las referencias a jquery y Ajax Unobtrusive:

 @Scripts.Render("~/bundles/jquery")  

Aquí está la documentación de MSDN para Ajax.ActionLink

Aquí hay una publicación de MSDN con algunos ejemplos relacionados con Ajax.ActionLink