How do you specify an area when binding to a model? I'm working on an ASP.NET MVC website using Areas, and using the Kendo().Menu() helper to build the menu. I'm using the BindTo() method to bind the menu to a model that is based on Kendo.MVC.UI.MenuItem. How do I tell the helper which area (i.e. which route) to use, and how do I specify that a particular controller is NOT in any of the areas. The following example code example might help to illustrate the problem I'm having:
using System.Collections.Generic;using System.Web.Routing;using My.Resources.Views.Shared;using Kendo.Mvc.UI;namespace My.Web.Configuration{ public class MyMenuItem: Kendo.Mvc.UI.MenuItem { public int Id { get; set; } public IEnumerable<MyMenuItem> SubItems { get; set; } } public class MySiteMap { public MySiteMap() { MenuItems = new List<MyMenuItem> { // There is an AccountController in an Area named 'Admin' // Neither one of the following approaches works. I think I'm close here, but I'm missing something // new MyMenuItem { Text = "Log In", ControllerName="Account", ActionName="Login", RouteName = "Admin"}, // new MyMenuItem { Text = "Log In", ControllerName="Account", ActionName="Login", RouteValues = new RouteValueDictionary(new {area = "Admin"})}, // The following line works the first time you click on it, but an error occurs the second // time, or when you try to navigate anywhere else, because the helper appends all links // to the Area name, once you've navigated to said area (e.g. "Home" becomes "Admin/Home" // which is incorrect). new MyMenuItem { Text = MenuResources.MenuLogin, ControllerName="Admin/Account", ActionName="Login" }, // How do I tell the Kendo().Menu() helper that the 'Home' controller, e.g., is not located // in the 'Admin' area? new MyMenuItem { Text = MenuResources.MenuAbout, ControllerName="Home", ActionName="About" }, new MyMenuItem { Text = MenuResources.MenuProjects, ControllerName="Projects", ActionName="Index", SubItems = new List<MyMenuItem> { new MyMenuItem{Text = MenuResources.MenuProjectX, ControllerName="Projects", ActionName="ProjectX"}, new MyMenuItem{Text = MenuResources.MenuProjectY, ControllerName="Projects", ActionName="ProjectY"} }, }, new MyMenuItem { Text = MenuResources.MenuNotesToSelf, ControllerName="Blog", ActionName="Index" } }; SiteMapName = "Root"; // Never displayed } public string SiteMapName { get; set; } public IEnumerable<MyMenuItem> MenuItems { get; set; } }}