我知道视图不应该包含代码,但在我正在处理的项目中,我在视图中有很多逻辑.
我的主页有
<% Html.RenderPartial("SearchResults"); %>
现在在局部视图中,我有很多这样的逻辑;
<div id="RestaurantsList"> <%if (Model.restaurantsList.Count() > 0) { foreach (var item in Model.restaurantsList) { %> <% Html.RenderPartial("SearchResult",item); %> <% } %> <% } else { Html.RenderPartial("NoResults"); } %>
现在我可以让主控制器返回一个基于列表为空的不同视图,但我真的不希望它,因为索引视图有一些我想要显示的东西,无论是否有结果.
我在这里唯一能想到的是将它封装在一个辅助方法中,比如Html.SearchResults.但是我需要帮助器来为每个搜索结果调用renderPartial.这似乎不是关心的干净分离.
我仍然需要在局部视图中使用第一个if语句.
你最好怎么处理这个?