如何根据Model值隐藏div元素?MVC

akd*_*akd 42 html asp.net-mvc jquery razor

这就是我现在所拥有的

 hidden="@(Model.IsOwnedByUser||!Model.CanEdit)"
Run Code Online (Sandbox Code Playgroud)

这在Chrome上工作正常,但在Internet Explorer上并不隐藏

我也试过可见性设置假但没有运气.

然后我发现了另一种风格如下

style="@(Model.IsOwnedByUser||!Model.CanEdit)?'display:none'""
Run Code Online (Sandbox Code Playgroud)

我无法让它奏效.使用Razor语法隐藏元素的正确格式是什么?

或者我会使用Jquery来隐藏元素.但实际上是否可以打印出jquery语句来隐藏页面加载时的元素?

Shy*_*yju 91

以下代码应根据您的Model的CanEditProperty值应用不同的CSS类.

<div class="@(Model.CanEdit?"visible-item":"hidden-item")">Some links</div>
Run Code Online (Sandbox Code Playgroud)

但是如果像编辑/删除链接那样重要,那么你不应该只是隐藏,因为人们可以在他们的浏览器中更新css类/ HTML标记并访问你的重要链接.相反,你应该只是将重要的东西渲染到浏览器.

@if(Model.CanEdit)
{
  <div>Edit/Delete link goes here</div>
}
Run Code Online (Sandbox Code Playgroud)

  • &lt;div style =“ display:@(Model.CanEdit?” block“:” none“)”&gt; &lt;/ div&gt;您还可以使用上述代码显示或隐藏html元素。 (2认同)

Yur*_*uri 28

尝试:

<div style="@(Model.booleanVariable ? "display:block" : "display:none")">Some links</div>
Run Code Online (Sandbox Code Playgroud)

将"显示"样式属性与bool模型属性一起使用以定义div的可见性.