我希望有两列并根据条件包含或删除第三列。使用所有if语句似乎有点多余。还有另一种方法吗?
<table style="width: 60%;">
<tr>
<th>Name</th>
<th>Age</th>
<th>Other</th>
</tr>
<tr>
<td><%= Model.Name.ToString().Trim()</td>
<td><%= Model.Age.ToString().Trim()</td>
<td><%= Model.Other.ToString().Trim()</td>
</tr>
<tr>
<td><%= Model.Name2.ToString().Trim()</td>
<td><%= Model.Age2.ToString().Trim()</td>
<td><%= Model.Other2.ToString().Trim()</td>
</tr>
<tr>
<td><%= Model.Name3.ToString().Trim()</td>
<td><%= Model.Age3.ToString().Trim()</td>
<td><%= Model.Other3.ToString().Trim()</td>
</tr>
</table>
答案 0 :(得分:1)
如果你想禁止在列中显示值,那么Ternary条件运算符(?:)会使事情看起来更好一些。
<%= Model.MyValue == somevalue ? "": Model.MyValue.ToString() %>
但是如果你想删除整个列,而不是禁止显示值,那么if
语句就完全可以了。
<tr>
<td><%= Model.Name.ToString().Trim() %></td>
<td><%= Model.Age.ToString().Trim() %></td>
<% if (myCondition) { %>
<td><%= Model.Other.ToString().Trim() %></td>
<% } %>
</tr>
顺便说一句,从您的代码示例中可以看出,您需要一个循环。您也可以从一些Html编码中受益。像这样:
<% foreach (Person item in Model) { %>
<tr>
<td><%= Html.Encode(item.Name) %></td>
<td><%= Html.Encode(item.Age) %></td>
<% if (myCondition) { %>
<td><%= Html.Encode(item.Other) %></td>
<% } %>
</tr>
<% } %>
答案 1 :(得分:0)
如果您正在使用表格,则隐藏显示其他值的列:
<% for(......){
//evaluate here if you will show it or not?
var showOther = Age > 18 ? "block":"none";
%>
<tr><td>..</td><td>..</td><td display="<%= showOther %>">..</td></tr>
<% }%>