如何使用ASP.Net MVC URL路由为所有操作添加前缀?
-
08-07-2019 - |
题
我正在尝试编写一个MapRoute调用,该调用将使任何以“json /”为前缀的路由前置“json”动作的名字。 例如,这样的路线:
"json/{controller}/{action}"
带有“json / Foo / Bar”,它应该导致:
controller = "Foo"
action = "jsonBar"
有什么想法吗?
解决方案
我想知道在路线数据中包含json并在行动中查找它会不会更好?即,在绘制路线时,请使用(默认值):
new { mode="json", controller = "Home", action = "Index", id = "" }
或将路线映射为:
"{mode}/{controller}/{action}"
然后在控制器中访问它:
string mode = (string) RouteData.Values["mode"];
(或将其作为参数传递)
除此之外,您可以编写自己的路由处理程序,但这需要做很多工作。
不隶属于 StackOverflow