首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC3中的版图困难

MVC3中的版图困难
EN

Stack Overflow用户
提问于 2011-01-07 11:56:02
回答 1查看 651关注 0票数 0

我有一个登录页面。在登录页面中,我没有任何菜单,基于用户登录,主页上出现了一个菜单。

我的问题是如何不只在我的登录页面中显示菜单

我的菜单有一个页面MenuControlPartial.cshtml,如下所示:

代码语言:javascript
复制
 <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如下:

代码语言:javascript
复制
 <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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-07 12:02:05

您可以测试当前控制器和操作。

代码语言:javascript
复制
@if (!(Html.ViewContext.RouteData.GetRequiredString("controller") == "Login" && Html.ViewContext.RouteData.GetRequiredString("action") == "Index")) {
    <div id="menucontainer">
        @Html.Partial("MenuControlPartial")
    </div>
}

为了避免这种丑恶,请写一个助手:

代码语言:javascript
复制
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");
}

然后:

代码语言:javascript
复制
@if (Html.ShouldDisplayMenu()) {
    <div id="menucontainer">
        @Html.Partial("MenuControlPartial")
    </div>
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4625224

复制
相关文章

相似问题

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