ASP.NET MVC 3路由始终具有查询字符串值“Area =”

时间:2012-07-24 16:26:08

标签: asp.net-mvc routing query-string asp.net-mvc-areas

这是我经历了很长一段时间的烦恼,但现在我的客户要求我解决它。

在每个生成的路由中(通过非默认路由),将追加查询字符串值:“Area=

举个例子:

// RouteConfig.Register():
routes.MapRoute(
    "ProfileDetails",
    "{slug}",
    new { controller = "Profile", action = "Details" }
);

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
);

要生成BadgeController.Index操作的网址,将应用默认路由,结果将为/Badge ...这就是预期的结果。

但要生成ProfileController.Details(someUser)操作的URL,将应用ProfileDetails路由,结果将为/someUser?Area= ...这将起作用,但?Area=是不必要的,凌乱。

我的项目中没有任何区域。如何摆脱Area=查询字符串值?我的所有路由都不是预定义的默认路由,而不仅仅是本例中的“ProfileDetails”。

我尝试从Global.asax文件中删除AreaRegistration.RegisterAllAreas(),因为我认为这不是必需的。

0 个答案:

没有答案