我是ASP MVC的新手,想知道在视图中处理条件语句的最佳方法是什么?我确信没有一种适合所有方法的方法,但对于简单的检查,让If-Then-Else语句乱丢在视图中是明智的吗?
例如,假设我有一个列表,并希望在设置其中一个模型属性的情况下在其中一个列表项上设置类。
<% if (myModel.MyProperty == 1) { %>
<li class="myClass">
<% } else { %>
<li>
<% } %>
这是解决这个问题的最佳方法,还是有更好的方法?我只是担心如果你在视图中有很多这样的条件,它会开始变得非常混乱。
提前感谢任何建议。
答案 0 :(得分:1)
如果你真的想要一个更清晰的视图,你可以创建一个帮助器:
public static class MyHelpers {
// Need a more descriptive name (based on what you're generating)
public static string MyListItemHelper(this HtmlHelper helper, bool condition) {
if(condition) {
return "<li class=\"myClass\">";
} else {
return "<li>";
}
}
}
然后你的观点就是:
<%= Html.MyListItemHelper(myModel.MyProperty == 1) %>
...
</li>
答案 1 :(得分:0)
我会把它放在你的控制器中。假设你不介意
<li class="">
答案 2 :(得分:0)
<ul>
<% foreach (var item in Model.Items) { <%
<li<%= item.HasProperty ? " class="\class\"" : "" %>>
<%= Html.Encode(item.Name) %>
</li>
<% } %>
</ul>