控制器中的索引函数有三个参数,比如'a','b','c'。目前我可以将值传递给url中的那些参数,例如action?a =“1”&'b'= 2&'c'= 3。
我想在形式action /“value”或action / b =“value”的url中向param'b'发送值。我尝试在Global.asax.cs中编辑路由,但是我收到错误“找不到路径的控制器或者没有实现iController”。对此问题的任何帮助将不胜感激
答案 0 :(得分:1)
您应该以这种方式将此构建到global.asax中的路由表中:
RouteTable.Routes.Add(new Route
{
Url = "[controller]/[action]/[a]/[b]/[c]",
Defaults = new { controller = "myController", action = "myAction", a = "1", b = "2", c = "3" },
RouteHandler(typeof(MvcRouteHandler)
});
要将其分解,Url参数会显示预期Url的结构,defaults参数会为可能为空的任何内容提供默认值。请注意,这将始终指向myDomain.com/myController/myAction/1/2/3
或类似myDomain.com/myController/myAction///
之类的结构的路线。如果您需要具有这些值的不同子集,则需要相应地调整路径。此外,您需要确保此路线在路线定义中很早出现。路由由它找到的第一个匹配路由确定,因此更复杂(更难到达)的路由应该总是提前,以允许默认路由捕获任何未命中的路径。
参考:http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx