0

控制器中的索引函数采用三个参数,比如“a”、“b”、“c”。目前,我可以将值传递给 url 中的那些参数,例如 action?a="1"&'b'=2&'c'=3。

我想以 action/"value" 或 action/b="value" 的形式将值发送到 url 中的参数“b”。我尝试在 Global.asax.cs 中编辑路由,但出现错误“找不到路径的控制器或未实现 iController”。对此问题的任何帮助将不胜感激

4

1 回答 1

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

于 2012-09-27T14:23:04.477 回答