Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Can';在URL中对斜杠进行编码_.net_Asp.net Mvc_Iis_Asp.net Mvc Routing_Urlencode - Fatal编程技术网

.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)