¿Cómo renderizo la vista parcial usando jquery?
Podemos representar la vista parcial de esta manera:
<% Html.RenderPartial("UserDetails"); %>
¿Cómo podemos hacer lo mismo con jquery?
¿Cómo renderizo la vista parcial usando jquery?
Podemos representar la vista parcial de esta manera:
<% Html.RenderPartial("UserDetails"); %>
¿Cómo podemos hacer lo mismo con jquery?
Respuestas:
No puede representar una vista parcial utilizando solo jQuery. Sin embargo, puede llamar a un método (acción) que le mostrará la vista parcial y la agregará a la página usando jQuery / AJAX. A continuación, tenemos un controlador de clic de botón que carga la URL de la acción desde un atributo de datos en el botón y dispara una solicitud GET para reemplazar el DIV contenido en la vista parcial con los contenidos actualizados.
donde el controlador de usuario tiene una acción denominada detalles que hace:
Esto supone que su vista parcial es un contenedor con la identificación
detailsDiv
para que simplemente reemplace todo con el contenido del resultado de la llamada.Botón de vista principal
User
es el nombre del controlador y eldetails
nombre de la acción en@Url.Action()
. Vista parcial de detalles del usuariofuente
He usado ajax load para hacer esto:
fuente
UserDetails
es el nombre de una acción, no una vista parcial, ¿verdad?@Url.Action("ActionName","ControllerName", new { area = "AreaName" } )
lugar de Handcoding .@tvanfosson rockea con su respuesta.
Sin embargo, sugeriría una mejora dentro de js y una pequeña comprobación del controlador.
Cuando usamos
@Url
helper para llamar a una acción, vamos a recibir un html formateado. Sería mejor actualizar el contenido (.html
) no el elemento real (.replaceWith
).Más información sobre: ¿Cuál es la diferencia entre replaceQith (jQuery) y html ()?
Esto es especialmente útil en árboles, donde el contenido se puede cambiar varias veces.
En el controlador podemos reutilizar la acción según el solicitante:
fuente
Otra cosa que puedes probar (según la respuesta de tvanfosson) es esta:
Y luego en la sección de secuencias de comandos de su página:
Esto representa su @ Html.RenderAction usando ajax.
Y para hacerlo todo fanático, puedes agregar un efecto de desvanecimiento usando este CSS:
Hombre me encanta mvc :-)
fuente
<div class="renderaction fade-in" ...></div>
elementos.Deberá crear una Acción en su Controlador que devuelva el resultado representado de la vista o control parcial "UserDetails". Luego, solo use un Get o Post Http de jQuery para llamar a la Acción para que se muestre el html representado.
fuente
Usando la llamada estándar de Ajax para lograr el mismo resultado
fuente
Lo hice así.
Método de detalles:
fuente
Si necesita hacer referencia a un valor generado dinámicamente, también puede agregar parámetros de cadena de consulta después de la URL @. Acción como esta:
fuente