2011-10-26 136 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屬性添加到您的控制器類中。

上述建議之一應該可以解決您的問題。

相關問題