我无法关闭ASP.NET MVC控制器的请求validation

我试图通过执行以下操作关闭控制器中所有操作方法的请求validation:

[ValidateInput(false)] public class MyController : Controller { ... 

我正在使用的参考说这是可能的,并告诉我这样做,但由于某种原因,它不起作用。

如果我通过文本框提交任何html(甚至是简单的标签),我会收到错误消息:

从客户端检测到潜在危险的Request.Form值(text = “)。

通过将属性附加到单个方法也无法正常工作。

如何禁用控制器的请求validation?

编辑

我在VS2008内置测试服务器。

我在我的机器上测试了它,在类定义和动作方法上,在两种情况下它都适用于我。 您确定您的视图与您的方法/控制器对齐吗? 您是将该属性放在GET方法还是POST方法上?

 [AcceptVerbs(HttpVerbs.Post)] [ValidateInput(false)] public ActionResult MyAction (int id, string content) { // ... } 

要使其正常工作,您还需要修改web.config:

   ...  

Pro ASP.NET MVC框架(p466)说以下应该有效:

 public class MyController : Controller { public MyController() { ValidateRequest = false; } } 

你可以发布你的控制器文件和你的视图文件。

这有效;

MytestController ——————————–

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; namespace testapp.Controllers { [ValidateInput(false)] public class MyTestController : Controller { public ActionResult Index() { return View(); } } } 

MyTest的(指数)———————————————- ———

 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>    Index   <% using (Html.BeginForm()) { %> <%= Html.TextBox("test")%>  <%} %>