我有一个登录页面。在登录页面中,我没有任何菜单,基于用户登录,主页上出现了一个菜单。
我的问题是如何不只在我的登录页面中显示菜单?
我的菜单有一个页面MenuControlPartial.cshtml,如下所示:
<li><a href="#">Admin</a>
<ul>
<li>TimeKeeper</li>
<li>AAA</li>
<li>BBB</li>
<li>CCC</li>
</ul>
</li>
<li><a href="#">Settings</a>
<ul>
<li>VV</li>
<li>XX</li>
</ul>
</li>
</ul>我的_layout.cshtml如下:
<div id="page">
<div id="header">
<div id="title">
<br />
</div>
@if (Request.IsAuthenticated)
{
<div id="loginInfo">
@Html.Partial("_LogOnPartial")
</div>
<div class="clear">
</div>
<div id="menucontainer">
@Html.Partial("MenuControlPartial")
</div>
<div class="clear"></div>
}
</div>
<div id="content">
@RenderBody()
</div>
</div>
}
</body>发布于 2011-01-07 12:02:05
您可以测试当前控制器和操作。
@if (!(Html.ViewContext.RouteData.GetRequiredString("controller") == "Login" && Html.ViewContext.RouteData.GetRequiredString("action") == "Index")) {
<div id="menucontainer">
@Html.Partial("MenuControlPartial")
</div>
}为了避免这种丑恶,请写一个助手:
public static bool ShouldDisplayMenu(this HtmlHelper htmlHelper)
{
var routeData = htmlHelper.ViewContext.RouteData;
var controller = routeData.GetRequiredString("controller");
var action = routeData.GetRequiredString("action");
return !(controller == "Login" && action == "Index");
}然后:
@if (Html.ShouldDisplayMenu()) {
<div id="menucontainer">
@Html.Partial("MenuControlPartial")
</div>
}https://stackoverflow.com/questions/4625224
复制相似问题