有条件地将标签渲染到不同的视图?

时间:2014-08-04 06:59:30

标签: asp.net-mvc razor asp.net-mvc-5

使用带有表格(简单的html标签)的视图,如下所示,以呈现两个不同的视图。

此表位于MVC视图>共享文件夹中,因此表示它由两个不同的视图使用。

View-1需要显示所有列;但是view-2不需要列"删除"。如何有条件地呈现此共享(表视图)视图,仅显示询问视图需要的列?

<table id="example" class="display" style="min-width: 100%">
<thead>
    <tr>
        <th>Item</th>
        <th>ItemDesc</th>
        <th>UM</th>
        <th>Qty</th>
        <th>Category</th>
        <th>Comment</th>
        <th>Delete</th> /*View-2 don't need this*/
    </tr>
</thead>

<tbody>

  @foreach (var model in Model){
    data goes here for respective <th> as <td> by getting from a model
        <td>model.Item</td>
        <td>model.ItemDesc</td>
        <td>model.UM</td>
        <td>model.Qty</td>
        <td>model.Category</td>
        <td>model.Comment</td>
        <td>model.Delete</td> /*View-2 don't need this*/
   }
</tbody>

如何在ASP MVC 5视图中执行此操作?

2 个答案:

答案 0 :(得分:1)

其中一个解决方案是在视图的模态中传递附加信息,如此

         if(modal.EnableDelete)
             <td>Delete</td>

答案 1 :(得分:1)

您只需将标记值存储在Viewbag或Tempdata中:

@Viewbag.show="no";

if(@Viewbag.show!="no"){
   <td>model.Delete</td>
}
else{
    <td></td>
}