我试图绕过.NET尝试提交HTML时抛出的错误消息:
A potentially dangerous Request.Form value was detected from the client
阅读following question后,web.config看起来像这样:
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters=""/>
<pages validateRequest="false">
<namespaces>
<add namespace="Microsoft.Web.Mvc" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web>
</configuration>
当我输入HTML时,我仍然会收到错误。我正在使用Visual Studio开发服务器运行.NET 4,MVC 2应用程序。
答案 0 :(得分:3)
啊,刚刚在这里阅读了一篇博客:http://geekswithblogs.net/renso/archive/2011/08/26/a-potentially-dangerous-request-value-was-detected-from-the-client.aspx
它谈到了为你的行为添加另一个属性,[ValidateInput(false)]
,这很有趣,我没有看到关于SO的任何类似问题的提及。
我将该属性添加到我的BaseController中,我的应用程序中的所有控制器都继承该属性,并立即开始工作。
[ValidateInput(false)]
public class BaseController : Controller
{
// code here
}
注意:我仍然需要包括两者:
<httpRuntime requestValidationMode="2.0"/>
和
<pages validateRequest="false" />
在网络配置中。
答案 1 :(得分:0)
尝试在解决方案上进行干净重建,如果需要,请关闭visual studio并清除临时ASP.NET文件。如果您将ValidateRequest
设置为false,则可能是缓存问题或您的DLL不同步。
正如ajbeaven所提到的,您可能还想尝试将ValidateInput
属性添加到控制器类中。
上述建议之一应该可以解决您的问题。