標籤:還需 ast log post方法 mvc 解決 版本 頭部 master
1,在出現該錯誤的頁面頭部的page中加入ValidateRequest="false",那麼該頁面的任何一次Post提交都不會再驗證提交內容的安全性。
如:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Manage/ViewMasterPageEdit.Master" Inherits="System.Web.Mvc.ViewPage<MvcWebPhoto.Models.Entities.Article >"
ValidateRequest="false" % >
2,在web.config中的pages節中配置validateRequest="false",如:
<system.web >
<pages validateRequest="false" ></pages >
</system.web >
但這樣,整個項目中的所有Form請求都不再驗證提交內容的安全性,極不提倡這種做法。
3,如果你使用的是.Net 3.5,MVC 2.0及更高的版本,那麼可以在處理Post方法的Action添加一個特性:[ValidateInput(false)],這樣處理就更加有針對性,提高頁面的安全性。
如:
[HttpPost]
[ValidateInput(false)]
public ActionResult CatalogEdit(Catalog model)
{
return View();
}
重要:
如果你使用的是MVC 3.0,那麼你會發現做了以上的設定後還是無效。這是因為你還需要在web.config中做以下設定:
<system.web >
<httpRuntime requestValidationMode="2.0" / >
</system.web >
注意:在MVC項目中,Views檔案夾下與主專案下,都會有一個web.config檔案。Views下的web.config檔案只對Views檔案夾下面的檔案有效。如果你要處理的頁面不在Views下面,那麼<httpRuntime requestValidationMode="2.0" / >一定要設定在主專案下的web.config中才有用。
MVC:從用戶端中檢測到有潛在危險的 Request.Form 值 的解決方案