ASP.NET MVC Razor 视图隐藏 table 列

ASP.NET MVC Razor view hide table column

我正在视图中构建一个 table 并且只希望在模式为 true 时显示此列?如果是这样做的唯一方法,或者我可以使用 hideisvisible@Html.HiddenFor 之类的东西吗?

@if(Model.IsLocationMode == true){
          <th>@Html.DisplayNameFor(model => model.Location[0].Name))</th>
   }
    
    @if(Model.IsLocationMode == true){
          <td>@obj.Name</td>
    }

如果您不关心数据,那么只需使用一个空的占位符来维护您的 table 结构。或者根本不包含它。

@if(Model.IsLocationMode == true) {
    <td></td>
}

如果您想在用户与您的页面交互时使用 JavaScript 切换可见性,请使用 CSS。

@{
    var hiddenClass = (Model.IsLocationMode ? "hidden" : "");
}

<td>
    <div class="@hiddenClass">
        @Html.DisplayNameFor(model => model.Location[0].Name)
    </div>
</td>

别忘了样式规则

.hidden {
    display: none;
}

然后就可以用js控制可见性来响应事件了

element.classList.toggle('hidden');