我正在使用MenuBuilder,代码如下:
public static MenuItem MainMenu(UrlHelper url)
{
Menu.DefaultIconDirectory = url.Content("~/Public/Images/");
Menu.DefaultDisabledClass = "disabled";
Menu.DefaultSelectedClass = "current";
return Menu.Begin(
Menu.Items("",
Menu.Action<HomeController>(p => p.Index(), "Home")
),
Menu.Items("",
Menu.Secure<HomeController>(p => p.About(), "About")
),
Menu.Items("",
Menu.Action<RegulationController>(p => p.Index(null), "Compliance")
)/* This is in the Compliance area */
).SetListClass("menu");
}
但我也在使用MvcContib区域,在上面的代码中,最终菜单项位于名为“合规”的“区域”中。
(Mvc申请中还有另外两个区域,注册区域列表中的第一个区域称为“立法”)
以下是:
当呈现页面时(我使用标准的WebFormsViewEngine),Urls都使用“立法”区域进行渲染!!
E.g。 http://localhost:1337/Legislation/Home或http://localhost:1337/Legislation/Home/About
最后http://localhost:1337/Legislation/Regulation
前两个链接不应该选择“立法”区域。最后一个菜单项应位于“合规性”区域。
如何防止在前两个链接上呈现错误的区域(立法)?
如何让Site.Master中的MenuBuilder标记接受“区域”属性,或者从Controller中为每个链接自动获取它?
答案 0 :(得分:1)
似乎MvcContrib MenuBuilder在区域方面表现不佳。最后,我把区域拿出去了,问题就消失了。
但是,我认识到Mvc应用程序中可能存在其他问题,这可能确实与MvcContrib引用的Mvc dll的旧版本(beta?)有关。
因此,对于遇到这种情况的任何人来说,这可能确实是一个无问题。