我尝试在我的项目中实现Phil的区域演示。
将此翻译成中文:http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx。
我在现有的MVC项目中追加了Areas/Blog结构,并在我的项目中遇到了以下错误。
控制器名称 Home code>在以下类型之间存在歧义:
WebMVC.Controllers.HomeController
WebMVC.Areas.Blogs.Controllers.HomeController
这就是我的Global.asax
外观。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapAreas("{controller}/{action}/{id}",
"WebMVC.Areas.Blogs",
new[] { "Blogs", "Forums" });
routes.MapRootArea("{controller}/{action}/{id}",
"WebMVC",
new { controller = "Home", action = "Index", id = "" });
//routes.MapRoute(
// "Default", // Route name
// "{controller}/{action}/{id}",// URL with parameters
// new { controller = "Home", action = "Index", id = "" }
// // Parameter defaults
//);
}
protected void Application_Start()
{
String assemblyName = Assembly.GetExecutingAssembly().CodeBase;
String path = new Uri(assemblyName).LocalPath;
Directory.SetCurrentDirectory(Path.GetDirectoryName(path));
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new AreaViewEngine());
RegisterRoutes(RouteTable.Routes);
// RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}
如果我从routes.MapAreas
中删除/Areas/Blogs
,它会查看根目录的Index。