Sono consapevole che le viste non dovrebbero contenere il codice ma in un progetto su cui sto lavorando ho molta logica nelle viste.Rimozione della logica dalle viste parziali in ASP.NET MVC
La mia home page ha
<% Html.RenderPartial("SearchResults"); %>
Ora, nella vista parziale ho un sacco aweful di logica come questo;
<div id="RestaurantsList">
<%if (Model.restaurantsList.Count() > 0)
{
foreach (var item in Model.restaurantsList)
{ %>
<% Html.RenderPartial("SearchResult", item); %>
<%
} %>
<%
}
else
{
Html.RenderPartial("NoResults");
} %>
Ora ho potuto fare il controller di casa restituire una visione diversa in base all'elenco di essere vuota, ma non voglio davvero così come la vista indice ha un paio di cose che mi desidera visualizzare non importa se ci sono risultati o no
L'unica altra cosa che posso pensare qui è incapsularlo in un metodo di supporto come Html.SearchResults. Ma allora avrei bisogno che l'helper chiami anche il renderPartial per ogni risultato di ricerca. Ciò non sembra una separazione pulita delle preoccupazioni.
Dovrei comunque avere la prima istruzione if nella vista parziale.
Come gestiresti meglio questo?
+1 Mi sono sempre chiesto quale sia la procedura migliore in questo caso. –