我在global.asax中定义了以下路由路径来处理url中的两个参数:
routes.MapRoute(
"Default", // Route name
"{page}/{th}", // URL with parameters
new { controller = "Home", action = "Index", page = UrlParameter.Optional, th = UrlParameter.Optional } // Parameter defaults
);
第一个参数是另一个网站的URL,即www.othersite.com/about /.
即使我将斜杠编码为%2f,也无法正确路由URL。我想用这样的东西:
http://{mywebsite}/www.othersite.net%2fabout%2f/{parameter2}
我不想要使用Base64编码,因为我希望URL可以如上所述。
我正在使用MVC 3。
由于
答案 0 :(得分:2)
看看Scott Hanselman的following blog post
,他解释了一些可能的解决方法。但结论是:
在完成所有这些努力以获得请求路径中的疯狂内容之后,就是这样 值得一提的是,只需将值保留为Query的一部分 字符串(记得在这篇文章的开头回答?)更容易, 更清洁,更灵活,更安全。
所以基本上最好为此使用url编码的查询字符串参数,而不是在可能会丢失的战斗中尝试与IIS作战。