0

&我对包含字符的文件名有疑问。

我必须得到一个名为:Test&TestAgain.jpg. 在 ASP.NET MVC3 应用程序中,在视图端,我把

Url.Content( "~/Content/Images/"+ filename );

在 Chrome 中,由于文件名包含&.

我认为这&用于查询字符串,浏览器将文件名解释为查询字符串。

因为文件名不包含?浏览器抛出该错误。(从客户端 (&) 检测到潜在危险的 Request.Path 值。

这是一种无需替换该字符即可解决此问题的方法(解决方法)?

4

1 回答 1

0

您需要对路径进行UrlEncode :

Url.Content("~/Content/Images/" + HttpServerUtility.UrlEncode(filename));

编辑:

似乎它不起作用。我现在能想到的唯一方法是允许受限制的字符并通过在注册表中设置来启用VerificationCompatibility

// 32-bit IIS
HKLM\SOFTWARE\Microsoft\ASP.NET VerificationCompatibility = 1

// 64-bit IIS
HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET VerificationCompatibility = 1
于 2013-05-13T08:37:01.090 回答