在URL中转义反斜杠

时间:2014-07-08 19:44:59

标签: c# asp.net-web-api asp.net-web-api-routing

是否可以调用接受字符串的Web API来反向斜杠?

调用语法为/api/testapi/PostSomeData/{ID}/{text}text可以是URL,文件路径或只是一些文本。如果text是URL或任何文本我的程序正常工作。如果它是file:///C:/TestDirec\\\\ServerName\\SomeData\\dinosaur.jpg等文件路径,则会失败。

http://localhost:12/api/testapi/PostSomeData/1/file:///C:/TestDirec

我的WebApiConfig文件也是这样的

config.Routes.MapHttpRoute(
                 name: "Api",
                 routeTemplate: "api/testapi/{action}/{ID}/{FilePath}",
                 defaults: new { Controller = "testapi", ID = @"\d+", FilePath =@"\d+" }
             );

控制器代码

        [AcceptVerbs("GET")]
        public void PostSomeData(int ID, string FilePath)
        {
        }

怎么做?

1 个答案:

答案 0 :(得分:2)

使用WebUtility.UrlEncodeHttpUtility.UrlEncode

HttpUtility.UrlEncode("file:///C:/TestDirec")

它将返回file%3a%2f%2f%2fC%3a%2fTestDirec,这是一个在网址中使用的有效字符串。