Jquery 如何根据模型值隐藏div元素?MVC

Jquery 如何根据模型值隐藏div元素?MVC,jquery,html,asp.net-mvc,razor,Jquery,Html,Asp.net Mvc,Razor,这是我目前的情况 hidden="@(Model.IsOwnedByUser||!Model.CanEdit)" 这在Chrome上运行良好,但不会隐藏在Internet Explorer上 我也试着把可见性设置为false,但没有运气 然后我发现另一种风格如下 style="@(Model.IsOwnedByUser||!Model.CanEdit)?'display:none'"" 我无法让它工作。使用Razor语法隐藏元素的正确格式是什么 或者我将使用Jquery隐藏元素。但实际上是

这是我目前的情况

 hidden="@(Model.IsOwnedByUser||!Model.CanEdit)"
这在Chrome上运行良好,但不会隐藏在Internet Explorer上

我也试着把可见性设置为false,但没有运气

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

style="@(Model.IsOwnedByUser||!Model.CanEdit)?'display:none'""
我无法让它工作。使用Razor语法隐藏元素的正确格式是什么


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

下面的代码应该根据模型的
CanEdit
属性值应用不同的CSS类

<div class="@(Model.CanEdit?"visible-item":"hidden-item")">Some links</div>
一些链接
但是,如果是像编辑/删除链接这样重要的事情,你不应该简单地隐藏,因为人们可以在浏览器中更新css类/HTML标记,并访问你的重要链接。相反,您应该简单地不将重要的内容呈现给浏览器

@if(Model.CanEdit)
{
  <div>Edit/Delete link goes here</div>
}
@if(Model.CanEdit)
{
编辑/删除链接在此处
}
试试:

一些链接

将“显示”样式属性与bool model属性一起使用,以定义div的可见性

您的代码不起作用,因为的版本不支持隐藏的attibute

如果您需要支持版本11之前的IE,请添加CSS样式,以便在存在隐藏属性时隐藏:

*[hidden] { display: none; }

我知道问题是关于隐藏div的,但是如果您不使用div做任何其他事情(例如在JavaScript中),那么您就不能使用Razor
@if
语法将其包含在视图的输出中

@if (Model.IsOwnedByUser && Model.CanEdit)
{
<div>Some Links</div>
}
@if(Model.isownedbyser&&Model.CanEdit)
{
一些链接
}

第二条语句有什么问题?除了在末尾有两个
并且缺少一个'else'(
:''
)style=“@(Model.IsOwnedByUser | |!Model.CanEdit)?'display:none':'display'“当我看到源代码时,这是return:style?'display:none':'display'谢谢。当我有两个条件时,我缺少一个语法。您也可以使用上面的代码来显示或隐藏html元素。第二种方法是使用视图中的逻辑,这不是一种受欢迎的方法。请给出您的答案以提高其可读性。解释这项工作的原因和/或提供参考资料也会改进您的答案。我不希望将其用于敏感信息。因为
Display:none
可以通过Inspect元素在浏览器中禁用。使用Shyju答案中所述的
@if
语句更安全。@Steven,我们仍然可以通过inspect更改类值。。。或者可以从“类名”更改“显示”属性。。因此,如果您将
display:none
放置在样式或css类中,它仍然会被渲染。您可能希望阻止div渲染,
@if (Model.IsOwnedByUser && Model.CanEdit)
{
<div>Some Links</div>
}