如何删除MVC中的表列?MVC

2023-09-07 01:00:38 作者:°︵醉无痕づ

欲有两个列,并根据条件,包括或删除的三分之一。使用所有的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>
 
mvc4中使用linq查询数据表中某列,在view中怎么显示

顺便说一句,似乎从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>
<% } %>