http://myhost/MyController/DoSomething/Anything%252fAnything
是一个错误的请求
http://myhost/MyController/DoSomething/Anything%2fAnything
与http://myhost/MyController/DoSomething/Anything/Anything
什么网址将字符串"Anything/Anything"
发送到我的控制器?
如何让Html.ActionLink
生成该网址?
编辑:它应该能够处理"Anything/Anything/Anything/Anything....../Anything"
我正在使用MVC 3。
答案 0 :(得分:2)
如果要定义定义可变长度路径的路径,可以使用以下定义:
routes.MapRoute("MyRoute", "{controller}/{action}/{id}/{*catchall}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
将其放在global.asax.cs
答案 1 :(得分:0)
路由机器想要处理斜杠。 因此添加路由规则,例如
url = [controller]/[action]/[id1]/[id2]
请参阅post
或使用
等网址http://myhost/MyController/DoSomething/Anything?id2=Anything
可以作为默认值进行处理 - 但在这种情况下,其他路由的规则必须明确地与您的控制器/操作名称不匹配。否则,将适用先前的规则。
也可能整个网址可从系统变量中获取。你的控制器是否被调用?