tutorial sintaxis net mvc extension español cshtml asp c# asp.net asp.net-mvc asp.net-mvc-4 razor

c# - net - sintaxis razor mvc 5



Cómo hacer una vista parcial asincrónicamente (2)

En primer lugar, debe utilizar Html.Partial como lo sugiere @buffjape. Si su vista parcial no está en la carpeta Shared , debe especificar la ruta a la vista

@Html.Partial("~/Views/Common/FooterLatestBlogPosts", yourModel)

Sin embargo, en este caso su vista todavía se carga de forma síncrona. Para cargarlo de forma asíncrona, debe cargarlo a través de jQuery. Artículo Mejorar el rendimiento percibido de los sitios web de ASP.NET MVC con vistas parciales asíncronas proporciona una muy buena descripción sobre cómo lograrlo.

También reemplaza tu Html.Render con

$(document).ready(function(){ $("#yourContainer").load(''@Url.Action("FooterLatestBlogPosts", "Common")'') });

¿Se puede hacer una vista parcial de forma asíncrona?

Tengo una vista parcial que necesita para hacer las publicaciones del blog. Las publicaciones del blog se devuelven de forma asíncrona.

En mi archivo _Layout , _Layout mi pie de página parcial _Footer . En _Footer tengo el siguiente marcado:

@Html.Action("FooterLatestBlogPosts", "Common")

Así que en mi controlador Common tengo el siguiente método de acción:

public async Task<ActionResult> FooterLatestBlogPosts() { List<ArticleDTO> articleDTOs = await articleTask.GetAllAsync(); return PartialView(articleDTOs); }

En mi vista parcial de FooterLatestBlogPosts tengo lo siguiente:

@model List<MyProject.Application.DTO.ArticleDTO> @if (Model.Count > 0) { <ul class="list-unstyled"> @foreach (var articleDTO in Model) { <li>@articleDTO.Title</li> } </ul> }

Estoy recibiendo un error:

Error executing child request for handler ''System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper''

¿Debería preferir simplemente crear un método síncrono para recuperar mis datos?