我的工作是MVC5项目。
在我的_Layout.cshtml
上,我有一个名为id="topBar"
的html元素,这个元素显示在每个页面中。
但是我有一个名为About.cshtml的页面,我不希望这个页面只显示元素id="topBar"
,所有其他_Layout.cshtml
中的html元素,我希望它们在About.cshtml
中正常显示。
你知道怎样才能达到上面描述的效果吗?
发布于 2017-02-22 19:16:45
有两个选项:
1.为每个body
元素添加ID
您可以在每个页面的主体中添加一个ID
,它包含例如控制器和操作名称,然后添加一个CSS规则来隐藏about页面上的topBar元素。
首先,让我们为控制器和动作名称创建两个字符串变量。在您的_Layout.cshtml中执行此操作:
@{
string controller = ViewContext.RouteData.Values["controller"].ToString();
string action = ViewContext.RouteData.Values["action"].ToString();
}
接下来,将ID添加到正文:
<body id="@controller-@action">
在您的css中,您现在可以添加一条规则来隐藏about页面中的顶栏(假设控制器名为HomeController):
#Home-About #topBar {display:none;}
您还可以使用扩展方法来获取控制器和操作名称。例如,like this。
2.使用About页面上的jQuery
您可以在about页面上添加一个Javascript,并使用jQuery隐藏顶部栏(我假设Javascript已经加载):
<script>
$("#topBar").hide();
</script>
发布于 2019-05-17 03:06:54
更简单的方法就是:单独设置页面样式:
<style>
#showcase { display: none; }
</style>
把这个放到你想隐藏的页面上,showcase就是我的分区id。;)
https://stackoverflow.com/questions/42389341
复制相似问题