Я знаю, что представления не должны иметь код в них, но в проекте, над которым я работаю, у меня много логики в представлениях.Удаление логики из частичных представлений в ASP.NET MVC
Моя страница имеет
<% Html.RenderPartial("SearchResults"); %>
Сейчас в частичном виде у меня есть aweful много логики, как это;
<div id="RestaurantsList">
<%if (Model.restaurantsList.Count() > 0)
{
foreach (var item in Model.restaurantsList)
{ %>
<% Html.RenderPartial("SearchResult", item); %>
<%
} %>
<%
}
else
{
Html.RenderPartial("NoResults");
} %>
Теперь я мог сделать домашний контроллер возвращает другую точку зрения на основе списка будучи пустым, но я не хочу, чтобы как Индексный есть несколько вещей, которые я хочу отображаться независимо от того, если есть результаты или нет.
Единственное, что я могу придумать здесь, это encapsualte это в вспомогательном методе, таком как Html.SearchResults. Но тогда мне понадобится помощник для вызова renderPartial для каждого результата поиска. Это не похоже на чистое разделение проблем.
Хотя я все равно должен иметь первое утверждение if в частичном представлении.
Как вы лучше всего справитесь с этим?
+1 Всегда задавался вопросом, что такое лучшая практика в этом случае. –