"如果"在ASP.NET MVC View(.aspx)文件中被视为有害?

Joe*_*Fan 5 architecture asp.net-mvc coding-style

我记得看到一个博客(或其他东西)说你不应该在ASP.NET MVC的.aspx文件中使用<%if ...%>,但我不记得它所说的替代方案是什么.任何人都能记得看到这一点并指出我吗?

Mar*_*tin 10

基本上它意味着你的视图中不应该包含巨大的if语句,你的控制器和ViewModel应该能够处理逻辑.例:

<h2 class="title">
    <% if (ViewData["category"] == null { %>
        All Products
    <% } else { % >
        <%= ViewData["category"] %>
    <% } %>
</h2>
Run Code Online (Sandbox Code Playgroud)

应该:

<h2 class="title>
    <%= Model.Title %>
</h2>
Run Code Online (Sandbox Code Playgroud)

如果您的控制器和ViewModel无法处理逻辑,您应该为更复杂的逻辑编写Html Helpers(从而使其可重用且更具可读性).

<h2 class="title>
    <%= Html.GetPageTitle(Model.Category) %>
</h2>
Run Code Online (Sandbox Code Playgroud)


Mik*_*ell 9

我认为你所指的是Rob Conery的一篇文章,他提到了他使用的规则:

如果有if,请帮忙

所以要回答你的问题,我们的想法是,如果你发现自己需要if在View中使用,你应该考虑添加一个帮助扩展方法来代替你的View部分.


Tim*_*ren 2

我不确定这是否是您所看到的,但这里有一个博客提到了它。参见第 11 条。