0

这是我长期经历的烦恼,但现在我的客户要求我解决它。

在生成的每个路由(通过非默认路由)中,都会附加一个查询字符串值:“ 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操作的 URL,将应用默认路由,结果将是/Badge……这就是预期的结果。

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

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

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

4

0 回答 0