vista una parcial mvc multiples modelos llamar cargar asp.net-mvc jquery knockout.js partial-views

asp.net-mvc - multiples - llamar una vista parcial mvc



¿Puedes simplemente actualizar una vista parcial en lugar de una publicación de página completa? (4)

Como es normal, lo que encuentro al buscar cosas como esta es que la gente da información muy limitada, así que intentaré ayudar aquí. La clave es configurar un div con una ID a la que pueda adjuntar el html de retorno. Además, cuando golpee su controlador, asegúrese de que devuelve el parcial. Hay algunos problemas potenciales con este método pero en un buen día debería funcionar.

<div id="CategoryList" class="widget"> @{ Html.RenderPartial("WidgetCategories.cshtml"); } </div> function DeleteCategory(CategoryID) { $.get(''/Dashboard/DeleteWidgetCategory?CategoryID='' + CategoryID, function (data) { if (data == "No") { alert(''The Category has report widgets assigned to it and cannot be deleted.''); } else { $(''#CategoryList'').html(data); } } ); } [HttpGet("DeleteWidgetCategory")] [HttpPost("DeleteWidgetCategory")] public IActionResult DeleteWidgetCategory(string CategoryID) { string Deleted = CategoryModel.DeleteCategory(CategoryID); if (Deleted == "Yes") { return PartialView("WidgetCategories"); } else { return this.Json("No"); } }

¿Hay alguna manera de enviar un formulario de vista parcial en asp.net mvc sin volver a cargar la página principal, pero volviendo a cargar la vista parcial solo a su nuevo estado? Similar a cómo las actualizaciones de knockout.js usan el enlace de datos.

Mi tabla de datos se procesa con un número variable de columnas / nombres, así que no creo que knockout.js sea una opción para este, así que estoy tratando de usar una vista parcial en su lugar.


En realidad, si su Parcial tiene un método de acción infantil, puede publicar (o incluso utilizar un enlace delimitador) directamente en la acción secundaria y obtener un efecto parecido al de Ajax. Hacemos esto en varias Vistas.

La sintaxis es

@Html.Action("MyPartial")

La acción del niño es

public ActionResult MyPartial() { return PartialView(Model); }

Si su formulario se publica en la acción del niño

@using (Html.BeginForm("MyPartial")) {     ... }

La Vista parcial se actualizará con la vista parcial devuelta desde la acción secundaria.

Jquery sigue siendo una forma legítima de actualizar un parcial. Pero técnicamente, la respuesta a su pregunta es SÍ.


No sin jQuery.

Lo que tendrías que hacer es poner tu parcial en un div, algo así como:

<div id="partial"> @Html.Partial("YourPartial") </div>

Luego, para actualizar (por ejemplo, hacer clic en un botón con el button identificación), puede hacer:

$("#button").click(function () { $.ajax({ url: "YourController/GetData", type: "get", data: $("form").serialize(), //if you need to post Model data, use this success: function (result) { $("#partial").html(result); } }); })

Entonces tu acción sería algo así como:

public ActionResult GetData(YourModel model) //that''s if you need the model { //do whatever return View(model); }


Utilizaría el Ayudante de formulario Ajax para tales escenarios usando una vista parcial y @ html.RenderPartial ("partialName") ayudantes parciales