【发布时间】:2018-04-10 19:50:38
【问题描述】:
在 MVC 5 应用程序中,我想接受两种不同类型的请求 URL:
http://www.myapp.com/brand/controller/actionhttp://www.myapp.com/controller/action
两个 URL 都应该指向控制器操作。
我尝试在其中包含可选参数品牌,但没有成功。
RouteTable.Routes.MapRoute(
"default",
"{brand}/{controller}/{action}",
new { brand = UrlParameter.Optional, controller = "Home", action = "Index" });
显然可选参数在控制器之前是不允许的。
有什么想法吗?
【问题讨论】:
-
A
UrlParameter.Optional只能应用于最后一段。您将需要 2 个路由定义{brand}/{controller}/{action}(其中brand不是可选的)和{controller}/{action}但是您需要对第一个路由进行约束,以便如果brand不是一组预定义值中的一个,它将然后匹配第二条路线 -
什么是
brand,它的可能值是什么?
标签: c# asp.net-mvc routetable