Ric*_*lay 8

冒号:字符在URL的路径段中无效,因此您必须对其进行编码或完全删除它.之后,您可以使用{*routeValue}语法指定应为URL的其余部分分配路由值.

routes.MapRoute( 
    "Image", 
    "image/{*url}", 
    new { controller = "Image", action = "Index" } 
); 
Run Code Online (Sandbox Code Playgroud)

对于url http://www.yoursite.com/image/images.google.com.ph/images/nav_logo7.png ,上面的路由将ImageController.Index()使用url参数执行"images.google.com.ph/images/nav_logo7.png".您如何选择处理协议(编码/删除)取决于您.

另请注意,网址权限可以由域名和端口号组成,由:(www.google.com:80)分隔,也需要对其进行编码.


TFD*_*TFD 5

如果你想发送URL作为你需要一个URL参数URL编码首先它

在C#中使用Server.UrlEncode(string)System.Web命名空间

所以你的例子看起来像:

www.yoursite.com/image/http%3a%2f%2fimages.google.com.ph%2fimages%2fnav_logo7.png
Run Code Online (Sandbox Code Playgroud)

你的路线模式可能是:

routes.MapRoute(
    "image",
    "image/{url}",
    new { controller = "Image", action = "Index", url = "" }
);
Run Code Online (Sandbox Code Playgroud)