ich MenuBuilder wie dies mit Code verwende:MvcContrib - Wie Gebiet in MenuBuilder Action bekommen
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");
}
Aber ich bin auch mit MvcContib Areas und im Code über dem letzten Menüpunkt befindet sich in einem ‚Gebiet‘ "Compliance" genannt.
(Es gibt zwei weitere Bereiche in der MVC-Anwendung und der erste in der Liste der registrierten Bereiche genannt wird ‚Gesetzgebung‘)
Was passiert, ist die folgende:
Wenn eine Seite gerendert wird (I verwende die Standard WebFormsViewEngine) die URLs werden alle mit dem 'Gesetzgebung' Bereich gerendert !!?
z. http://localhost:1337/Legislation/Home oder http://localhost:1337/Legislation/Home/About
und schließlich http://localhost:1337/Legislation/Regulation
Die ersten beiden Links sollten nicht die ‚Gesetzgebung‘ Bereich holen. Der letzte Menüpunkt sollte im Bereich "Compliance" sein.
Wie verhindere ich, dass der fehlerhafte Bereich (Gesetzgebung) auf den ersten beiden Links gerendert wird?
Wie erhalte ich das MenuBuilder-Markup im Site.Master, um ein Attribut 'Bereich' zu akzeptieren oder es automatisch vom Controller für jeden Link abzurufen?