asp.net-mvc – 从ASP.NET MVC中的部分视图中删除逻辑

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 从ASP.NET MVC中的部分视图中删除逻辑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道视图不应该包含代码,但在我正在处理的项目中,我在视图中有很多逻辑.

我的主页有

<% 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语句.

你最好怎么处理这个?

解决方法

我个人认为这没关系.您使用的逻辑与模型需要如何显示完全相关.

您只需要注意并确保您永远不会混淆业务逻辑,数据访问逻辑或任何其他未严格限制在模型显示中的内容.

猜你在找的asp.Net相关文章