Soy consciente de que las vistas no deberían tener código, pero en un proyecto en el que estoy trabajando Tengo mucha lógica en las vistas.Eliminando lógica de vistas parciales en ASP.NET MVC
Mi página de inicio tiene
<% Html.RenderPartial("SearchResults"); %>
Ahora en la vista parcial Tengo una gran cantidad horrible de la lógica como ésta;
<div id="RestaurantsList">
<%if (Model.restaurantsList.Count() > 0)
{
foreach (var item in Model.restaurantsList)
{ %>
<% Html.RenderPartial("SearchResult", item); %>
<%
} %>
<%
}
else
{
Html.RenderPartial("NoResults");
} %>
Ahora podría hacer que el controlador de regreso a casa un punto de vista diferente sobre la base de la lista está vacía, pero yo realmente no quiero que a medida que la vista del índice tiene un par de cosas que desea que se muestren no importa si hay resultados o no.
Lo único que se me ocurre aquí es encapsularlo en un método auxiliar como Html.SearchResults. Pero luego necesitaría el ayudante para llamar al renderPartial para cada resultado de búsqueda también. Eso no parece una clara separación de preocupaciones.
Todavía tendría que tener la primera instrucción if en la vista parcial.
¿Cómo manejarías esto mejor?
+1 Siempre me he preguntado cuál es la mejor práctica en este caso. –