欲有两个列,并根据条件,包括或删除的三分之一。使用所有的if语句似乎有点多余。是否有另一种方式来做到这一点?
<表格样式=宽度:60%;>
&其中; TR>
百分位>名称< /第i个
百分位>年龄< /第i个
百分位>其他< /第i个
< / TR>
&其中; TR>
< TD><%= Model.Name.ToString()修剪()< / TD>
< TD><%= Model.Age.ToString()修剪()< / TD>
< TD><%= Model.Other.ToString()修剪()< / TD>
< / TR>
&其中; TR>
< TD><%= Model.Name2.ToString()修剪()< / TD>
< TD><%= Model.Age2.ToString()修剪()< / TD>
< TD><%= Model.Other2.ToString()修剪()< / TD>
< / TR>
&其中; TR>
< TD><%= Model.Name3.ToString()修剪()< / TD>
< TD><%= Model.Age3.ToString()修剪()< / TD>
< TD><%= Model.Other3.ToString()修剪()< / TD>
< / TR>
< /表>
解决方案
中的三元条件运算符(?:)让事情看起来更好一点,如果你想抑制值显示在列。
<%= Model.MyValue == someValue中? :Model.MyValue.ToString()%>
但是,如果你想删除整列,而不是抑制值的显示,那么如果
语句是完全正常的。
< TR>
< TD><%= Model.Name.ToString()修剪()%>< / TD>
< TD><%= Model.Age.ToString()修剪()%>< / TD>
如果%(myCondition){%GT;<
< TD><%= Model.Other.ToString()修剪()%>< / TD>
<%}%GT;
< / TR>
顺便说一句,似乎从code样品,你需要一个循环。你也可以受益于一些HTML编码。事情是这样的:
<%的foreach(在型号人项目){%GT;
&其中; TR>
< TD><%= Html.En code(item.Name)%>< / TD>
< TD><%= Html.En code(item.Age)%>< / TD>
如果%(myCondition){%GT;<
< TD><%= Html.En code(item.Other)%>< / TD>
<%}%GT;
< / TR>
<%}%GT;
I want have two columns and based on a condition, include or remove a third. using all the if statements seems a bit redundant. Is there another way to do this?
<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>
解决方案
The Ternary conditional operator (?:) makes things look a little nicer if you want to inhibit display of values in a column.
<%= Model.MyValue == somevalue ? "": Model.MyValue.ToString() %>
But if you want to remove the entire column, rather than inhibiting the display of the values, then if
statements are perfectly fine.
<tr>
<td><%= Model.Name.ToString().Trim() %></td>
<td><%= Model.Age.ToString().Trim() %></td>
<% if (myCondition) { %>
<td><%= Model.Other.ToString().Trim() %></td>
<% } %>
</tr>
By the way, it appears from your code sample that you need a loop. You could also benefit from some Html encoding. Something like this:
<% 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>
<% } %>