Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取名称包含&;的文件时出现错误400(错误请求);C#ASP.NET MVC3中的字符_C#_Asp.net Mvc 3 - Fatal编程技术网

获取名称包含&;的文件时出现错误400(错误请求);C#ASP.NET MVC3中的字符

获取名称包含&;的文件时出现错误400(错误请求);C#ASP.NET MVC3中的字符,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,关于包含和字符的文件名,我有一个问题 我必须得到一个名为:Test&TestAgain.jpg的图像。在ASP.NETMVC3应用程序中,在视图端,我将 Url.Content( "~/Content/Images/"+ filename ); 在Chrome中,我看到错误400错误请求,因为文件名包含& 我认为&用于查询字符串,浏览器将文件名解释为查询字符串 因为文件名不包含?,所以浏览器会抛出该错误。(潜在危险的请求。从客户端(&)检测到路径值。) 这是一种在不替换该字符的情况下解决此问题

关于包含
字符的文件名,我有一个问题

我必须得到一个名为:
Test&TestAgain.jpg
的图像。在ASP.NETMVC3应用程序中,在视图端,我将

Url.Content( "~/Content/Images/"+ filename );
在Chrome中,我看到错误400错误请求,因为文件名包含
&

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

因为文件名不包含
,所以浏览器会抛出该错误。(潜在危险的请求。从客户端(&)检测到路径值。

这是一种在不替换该字符的情况下解决此问题的方法?

您需要找到以下路径:

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

好像不行。我现在能想到的唯一方法是通过在注册表中设置来允许和启用:

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

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

不,它不起作用……我试了很多次。没有成功。不管怎样,浏览器都会解释
&