如何使用ASP.Net MVC URL路由为所有操作添加前缀?

Lok*_*oki 6 c# asp.net asp.net-mvc url-routing

我正在尝试编写一个MapRoute调用,它将使任何以"json /"为前缀的路径将"json"添加到操作的名称之前.例如,这样的路线:

"json/{controller}/{action}"
Run Code Online (Sandbox Code Playgroud)

使用"json/Foo/Bar",它应该导致:

controller = "Foo"
action = "jsonBar"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Mar*_*ell 4

我想知道在路由数据中包含 json 并在操作中查找它不是更好吗?即在映射路线时,使用类似的内容(默认值):

new { mode="json", controller = "Home", action = "Index", id = "" }
Run Code Online (Sandbox Code Playgroud)

或将路线映射为:

"{mode}/{controller}/{action}"
Run Code Online (Sandbox Code Playgroud)

然后在控制器中访问它:

string mode = (string) RouteData.Values["mode"];
Run Code Online (Sandbox Code Playgroud)

(或将其作为参数传递)

除此之外,您还可以编写自己的路由处理程序,但这需要大量工作。