2011-10-26 116 views
4

我试图规避当您尝试提交时出现的.NET错误消息HTML:在.NET 4上使用requestValidationMode =“2.0”和validateRequest =“false”设置了“潜在危险的Request.Path找到......”设置为

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应用程序。

回答

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" /> 
在web配置

0

尝试做一个干净的重建解决方案,如果需要关闭Visual Studio并清除临时的ASP.NET文件。如果您将ValidateRequest设置为false,则可能是缓存问题,或者您的DLL不同步。

正如ajbeaven提到的,您可能还想尝试将ValidateInput属性添加到您的控制器类中。

上述建议之一应该可以解决您的问题。

相关问题