.net Can';在URL中对斜杠进行编码
.net Can';在URL中对斜杠进行编码,.net,asp.net-mvc,iis,asp.net-mvc-routing,urlencode,.net,Asp.net Mvc,Iis,Asp.net Mvc Routing,Urlencode,http://myhost/MyController/DoSomething/Anything%252fAnything是一个错误的请求 http://myhost/MyController/DoSomething/Anything%2fAnything与http://myhost/MyController/DoSomething/Anything/Anything 哪个URL将字符串“任何东西”发送到我的控制器 如何使Html.ActionLink生成该URL 编辑:它还应该能够处理“任何/任
http://myhost/MyController/DoSomething/Anything%252fAnything
是一个错误的请求
http://myhost/MyController/DoSomething/Anything%2fAnything
与http://myhost/MyController/DoSomething/Anything/Anything
哪个URL将字符串“任何东西”
发送到我的控制器
如何使Html.ActionLink
生成该URL
编辑:它还应该能够处理“任何/任何/任何/任何……”的
我正在使用MVC 3。路由机制想要处理斜杠。
因此,添加一个路由规则,例如
url = [controller]/[action]/[id1]/[id2]
看
或者使用URL,例如
http://myhost/MyController/DoSomething/Anything?id2=Anything
可能可以作为默认值进行处理——但在这种情况下,其他路由的规则必须显式地与控制器/操作名称不匹配。否则将适用先前的规则
也可能是整个url可从系统变量获得。是否调用了控制器?如果要定义定义可变长度路由的路由,可以使用以下类型的定义:
routes.MapRoute("MyRoute", "{controller}/{action}/{id}/{*catchall}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
在您的global.asax.cs
Hi Larry中,将其放在其他路线定义之前。我的控制器没有被调用。我的实际路线类似于“为-{seo\u-friendly\u-category\u-name}/{category\u-id}发布作业”。ActionLink能够生成链接,即使seo\u友好的\u类别\u名称包含斜杠,但根本不调用controller。所以我尝试对斜杠进行编码。没有调用您的控制器,因为没有任何路由与传入的url匹配。传出链接创建是独立的。为url添加匹配的路由,然后将调用控制器。请记住,路由定义的顺序是正确的。它匹配。如果没有,那么ActionLink将不会生成seo友好的链接。您如何调用?我正在调用myhost/MyController/DoSomething/Anything/Anything,但这会使路由系统丢失,因此我尝试用%252f和%2f对斜杠进行编码,但不起作用。是的,但您如何调用它?在你看来,这是通过某个助手实现的吗?如果是这样,你能发布代码吗?Html.ActionLink(stringlinktext,stringactionname,objectroutevalue)