我希望有人能帮我解决以下问题,因为我真的很失落。
我从对C#处理程序的ajax javascript调用中得到一个C#HttpContext
。
然后,使用VS运行调试模式,我可以看到context.Request.Params
返回以下字符串:
id_affaire=225&Files=%3bT.00000.11-EXE-01-R+1-PL-202-B.dwg%3bT.00000.11-EXE-01-R+1-PL-202-B.dwg&table_colonne=Flexigrid_PanierBordereau&page=1&rp=10&sortname=nom&sortorder=asc&query=&qtype=&ASP.NET_SessionId=o314eh2yjush1pxno2geu42....
但是这样做:context.Request.Params.Get("Files")
我得到以下字符串
;T.00000.11-EXE-01-R 1-PL-202-B.dwg;T.00000.11-EXE-01-R 1-PL-202-B.dwg
问题是字符+
已经消失了。。。
;T.00000.11-EXE-01-R 1-PL-202-B.dwg;T.00000.11-EXE-01-R 1-PL-202-B.dwg
我应该在参数中获得文件的全名,+
应该在R+1字符串中,如下所示:
;T.00000.11-EXE-01-R+1-PL-202-B.dwg;T.00000.11-EXE-01-R+1-PL-202-B.dwg
任何人都可以帮助我在httpContext的params中获得字符串,因为它已经被发送(缺少特殊字符+
)?
在将参数传递到url&通过上下文获取pamameters后对其进行解码。Request.Params.Get("文件").
您可以使用:
HttpServerUtility.UrlDecode Method (String)
HttpServerUtility.UrlEncode Method (String)
例如:
编码
String MyURL;
MyURL = "http://www.contoso.com/articles.aspx?title=" + Server.UrlEncode("ASP.NET Examples");
解码
String DecodedString = Server.UrlDecode(EncodedString);