Asp.net
ValidateRequest = False 但實際上它仍然是 True 並忽略它?
我想在ASP.NET MVC 2.0 RTM的特定視圖上禁用RequestValidation。所以我添加了一些必要的查看頁面指令部分,如下所示:
<%@ Page ValidateRequest="false" Language="C#" MasterPageFile="Path" Inherits="System.Web.Mvc.ViewPage<Path>" %>但RequestValidation沒有被禁用!我還在控制器中的相關操作中添加了RequestValidation 屬性,如下所示:
[System.Web.Mvc.ValidateInput(false)] public System.Web.Mvc.ActionResult Create(Model instance) { //Do here something }:’) 但RequestValidation也沒有禁用!
在最後一次嘗試中,我在Web.config文件中將RequestValidation設置為 false,如下所示:
<pages validateRequest="false" />RequestValidation仍未關閉!
為什麼?提前致謝 ;)
如果您使用的是 asp.net 4.0,則驗證請求功能的行為已從 2.0 版更改。在此處查看重大更改文件。如果是這種情況,您可以通過將請求驗證行為設置回 web.config 中的 2.0 來解決問題,如下所示:
<httpRuntime requestValidationMode="2.0" />
只需添加
$$ ValidateInput(false) $$ 在您的控制器功能中,但不要忘記對值進行編碼以防止有害程式碼
[ValidateInput(false)] public string Browse(string test) { string message = HttpUtility.HtmlEncode("Value = " + test); return message; }