在"_layout"中显示/隐藏项目
本文关键字:quot 隐藏 项目 显示 layout | 更新日期: 2023-09-27 18:08:22
我正在一个c# MVC项目上工作,我想要一个母版页,它有一个包含一些信息的头,其中是左上角的应用程序徽标。但是,有一个视图我不希望它被看到,那就是登录页面。
那么,我如何为Home/Index
视图隐藏它然后为所有其他视图显示它呢?
这是_Layout.cshtml
的一部分
...
<body>
<header>
<div class="content-wrapper">
<div class="float-left">
<a href="../Home/Index"><img src="../../Images/_logo.png" alt="whatever" /></a>
</div>
...
这显示在每个页面中,我只是希望我可以在用户输入其凭据的初始页面中隐藏它。
如何做到这一点?
谢谢
您可以为登录页面设置Layout = null
@{
Layout = null;
}
您可以使用MVC视图的section
来实现此目的。它们正是用于-
在_layout.cshtml
中包含报头部分如下,因此报头被包含为最佳的section
@RenderSection("Header", False)
@RenderSection("MainContent")
那么其他页面可以有单独的页眉,比如(some.cshtml
) -
@section Header {
<header>
<div class="content-wrapper">
<div class="float-left">
<a href="../Home/Index"><img src="../../Images/_logo.png" alt="whatever" /></a>
</div>
}
@section MainContent{
other body content.
}
对于login
,不要定义section
,只提供正文-
@section MainContent{
other body content.
}
这不仅为您提供了显示隐藏标题的选项,而且还提供了根据内容页的内容和需要自定义布局的绝佳选项。
你可以从这里了解更多-
http://www.codeproject.com/Articles/383145/RenderBody-RenderPage-and-RenderSection-methods-in在msdn中你可以找到文档
http://msdn.microsoft.com/en-us/library/system.web.webpages.webpagebase_methods (v = vs.111) . aspx
您可以检查当前用户是否经过身份验证,如果没有,则隐藏希望隐藏的元素。
@if(HttpContext.Current.User != null && HttpContext.Current.User.Identity != null && HttpContext.Current.User.Identity.IsAuthenticated)
{
... stuff to show if user is authenticated here ...
}
您可以在登录页面(cshtml)上编写JQuery。使用$(document).ready()事件并隐藏包含徽标图像的div
use script
$(window).load(function () {
$("#actionlinkid").hide = true;
});
同意Softsen给出的解决方案。但如果你只要求隐藏特定页面的徽标,你可以这样做:
@if(Request.Url.ToString().IndexOf("index")==-1)
{
<div class="float-left">
<p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
</div>
}