2012-07-10 50 views
-1

我正在使用剃须刀在asp.net mvc 3上工作。我的项目中有一个布局(主)页面。它包含一个带有4个链接的侧面板和用于查看页面的位置(@RenderBody)。当用户点击link1时,它将重定向到viewpage1和link1,并且当他点击link2时,它将重定向到viewpage2,link2应该被选中。它很好地重定向到需要的页面,但它总是选择链接1,但我点击了链接2,链接3,链接4。我怎么能从个别视图页面中选择布局页面中的适当链接。引导我。我怎样才能改变从MVC布局页面在MVC

回答

0

通过选定我想你的意思是使用CSS亮点,不是吗?如果是这样的话我建议你写一个自定义的HTML辅助生成这些链接:

public static IHtmlString MenuItem(
    this HtmlHelper htmlHelper, 
    string text, 
    string action, 
    string controller 
) 
{ 
    var li = new TagBuilder("li"); 
    var routeData = htmlHelper.ViewContext.RouteData; 
    var currentAction = routeData.GetRequiredString("action"); 
    var currentController = routeData.GetRequiredString("controller"); 
    if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) && 
     string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase)) 
    { 
     li.AddCssClass("active"); 
    } 
    li.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString(); 
    return new HtmlString(li.ToString()); 
} 

,然后你的布局中使用助手:

<ul> 
    @Html.MenuItem("link 1", "Action1", "Controller1") 
    @Html.MenuItem("link 2", "Action2", "Controller2") 
    ... 
</ul> 

,现在所有剩下的就是在你的CSS类中定义.active规则:

.active { 
    ... something fancy to pop the currently selected link from the others 
}