我正在使用带有 MVC 的包罗万象的路由来为我们的应用程序中的资源提供路径。它看起来像这样:
_routes.MapRoute(null, "Resource/{*resourcePath}", new {
controller = "Resource",
action = "Open"
});
动作是这样的
public ActionResult Open(string resourcePath) {
string[] path = resourcePath.Split('/');
}
用一个漂亮友好的 URL 打它,它工作得很好
/Resource/Path/To/Resource
path = ["Path", "To", "Resource"]
但是当我有一个带有正斜杠的资源名称(我当然会转义)时,它会将转义的斜杠视为路径的一部分
/Resource/Path/To/Resource%2FWith%2FSlashes
path = ["Path", "To", "Resource", "With", "Slashes"]
I expected ["Path", "To", "Resource/With/Slashes"]
我尝试了双重转义,只是让 ASP.NET 出于安全原因抱怨双重转义,而且我认为我不应该打开那罐蠕虫。
有什么办法可以使包罗万象的路线不逃脱斜线吗?