首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在_Layout.cshtml页面中隐藏页面上的特定元素

如何在_Layout.cshtml页面中隐藏页面上的特定元素
EN

Stack Overflow用户
提问于 2017-02-22 18:59:46
回答 2查看 4.8K关注 0票数 5

我的工作是MVC5项目。

在我的_Layout.cshtml上,我有一个名为id="topBar"的html元素,这个元素显示在每个页面中。

但是我有一个名为About.cshtml的页面,我不希望这个页面只显示元素id="topBar",所有其他_Layout.cshtml中的html元素,我希望它们在About.cshtml中正常显示。

你知道怎样才能达到上面描述的效果吗?

EN

回答 2

Stack Overflow用户

发布于 2017-02-22 19:16:45

有两个选项:

1.为每个body元素添加ID

您可以在每个页面的主体中添加一个ID,它包含例如控制器和操作名称,然后添加一个CSS规则来隐藏about页面上的topBar元素。

首先,让我们为控制器和动作名称创建两个字符串变量。在您的_Layout.cshtml中执行此操作:

代码语言:javascript
复制
@{
    string controller = ViewContext.RouteData.Values["controller"].ToString();
    string action = ViewContext.RouteData.Values["action"].ToString();
}

接下来,将ID添加到正文:

代码语言:javascript
复制
<body id="@controller-@action">

在您的css中,您现在可以添加一条规则来隐藏about页面中的顶栏(假设控制器名为HomeController):

代码语言:javascript
复制
#Home-About #topBar {display:none;}

您还可以使用扩展方法来获取控制器和操作名称。例如,like this

2.使用About页面上的jQuery

您可以在about页面上添加一个Javascript,并使用jQuery隐藏顶部栏(我假设Javascript已经加载):

代码语言:javascript
复制
<script>
   $("#topBar").hide();
</script>
票数 3
EN

Stack Overflow用户

发布于 2019-05-17 03:06:54

更简单的方法就是:单独设置页面样式:

代码语言:javascript
复制
<style>
    #showcase {  display: none; }   
</style>

把这个放到你想隐藏的页面上,showcase就是我的分区id。;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42389341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档