我一直试图避免在我的MVC视图中直接使用Response.Write(...)。原因是我只需要输入字符串文字而视图引擎知道该怎么做。但是,在某些情况下,我似乎创建了太多的尖括号(< %%>)。那么,您认为这两个代码片段中的哪一个更容易被接受?
<% if (true)
{
Response.Write(Model.SomeValue);
} %>
或者
<% if (true) { %>
<%= Model.SomeValue %>
<% } %>
答案 0 :(得分:4)
这就是Html Helpers存在的原因(尽可能避免意大利面条代码):
<%= Html.MySuperHelper(Model.SomeValue) %>
每当你需要在视图中写一个if
语句时,你可能会问自己一个问题:编写辅助方法(作为奖励可以进行单元测试)不是更好吗?
答案 1 :(得分:2)
第三种可能性怎么样?
<%= condition ? Html.Encode(Model.SomeValue) : "" %>
虽然在实践中你应该完全保留除了最简单的逻辑之外的所有逻辑。要么在控制器中完成工作,要么将逻辑包装在某种HTML帮助器中。
答案 2 :(得分:0)
或者第四个:
<%= condition ? Html.Encode(Model.SomeValue) : "" %>