我正在尝试创建一个ASP.NET MVC母版页,因此其上的网站导航将如下所示:
主菜单:Home | About | News
子菜单: Home_Page1 | Home_Page2
子菜单部分应始终显示当前所选主菜单页面的子菜单(在“主页”页面上方的示例中选择),除非用户将鼠标悬停在另一个主菜单项上(然后它显示该项的子菜单) - 而不是)。
在ASP.NET MVC中获取此类功能的最佳方法是什么?
答案 0 :(得分:2)
如果使用HtmlHelper Extension方法创建菜单,例如:
<%= Html.RenderMenu() %>
您可以使用HtmlHelper实例查看请求上下文并确定您所在的页面。一旦你有了这个,你可以查找(数据库,配置,你的菜单数据在哪里......)要呈现的子菜单。
有些东西让你指出我认为你正在寻找的方向:
public static MvcHtmlString RenderMenu(this HtmlHelper html) {
var somePage = Html.ViewContext.HttpContext.Request.RawUrl;
var menu = lookupMenuBasedOnPage(somePage);
return MvcHtmlString.Create(menu.Render());
}