ASP.NET MVC默认URL视图
我试图将我的MVC应用程序的默认URL设置为我应用程序区域内的视图。 该区域被称为“ 普通 ”,控制器“ 主页 ”和视图“ 索引 ”。
我已经尝试将web.config的表单部分中的defaultUrl设置为“ 〜/ Common / Home / Index ”,但没有成功。
我也尝试在global.asax中映射一个新的路由,因此:
routes.MapRoute(
"Area",
"{area}/{controller}/{action}/{id}",
new { area = "Common", controller = "Home", action = "Index", id = "" }
);
再次,无济于事。
您列出的路线只有在明确输入网址时才有效:
yoursite.com/{area}/{controller}/{action}/{id}
那条路线说的是:
如果我得到的请求有一个有效的{area}
,该{area}
有效的{controller}
以及该{controller}
中有效的{action}
,然后将其路由到那里。
如果他们只是访问您的网站yoursite.com
,您希望默认使用该控制器:
routes.MapRoute(
"Area",
"",
new { area = "Common", controller = "Home", action = "Index" }
);
这说的是,如果他们没有追加任何东西给http://yoursite.com
然后将其路由到以下操作: Common/Home/Index
另外,把它放在路由表的顶部。
确保你也让MVC知道注册你在应用程序中的区域:
将以下内容放入Global.asax.cs
文件的Application_Start
方法中:
AreaRegistration.RegisterAllAreas();
你需要做的是:
从global.asax.cs中删除默认路由
//// default route map will be create under area
//routes.MapRoute(
// name: "Default",
// url: "{controller}/{action}/{id}",
// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//);
更新Common区域中的SecurityAreaRegistration.cs
添加以下路由映射:
context.MapRoute(
"Default",
"",
new { controller = "Home", action = "Index", id = "" }
);
你在做什么似乎是正确的。 如果我不得不猜测,我会说这是由于你运行你的网站的方式。 在Visual Studio中,如果您在按F5时选择了特定的视图,那么该视图将成为起始URL - 尝试选择Project,然后按F5?
链接地址: http://www.djcxy.com/p/80083.html