2009-10-30 167 views
20

请求验证已更改为ASP.NET MVC 2,更准确地说,不验证?请求验证 - ASP.NET MVC 2

我做了以下内容:

Web.configs(在应用程序目录,查看目录)

<pages 
    validateRequest="false" 

控制器/ action属性

[ValidateInput(false)] 

在@Page查看指令

ValidateRequest="false" 

页面仍被验证,发布HTML内容时引发异常。

UPDATE

创建一个新的ASP.NET MVC 2应用程序,我修改了主页控制器的指数这个

[ValidateInput(false)] 
    public ActionResult Index(string InputText) 
    { 
     ViewData["Message"] = "Welcome to ASP.NET MVC!"; 

     return View(); 
    } 

和我查看页面

<% using(Html.BeginForm()){ %> 
    <%= Html.TextBox("InputText") %> 
    <input type="submit" /> 
<% } %> 

还是一样的问题,抛出异常。

回答

31

我应该更仔细地阅读错误下一次:

为了让网页在配置部分重写应用程序请求验证设置, 集requestValidationMode =“2.0”。 设置此值之后,然后你可以通过 禁用请求验证设置validateRequest =“假”

我把这个应用程序的web.config

<system.web> 
    <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" /> 
</system.web> 

和它的工作。

更新:

我运行ASP.NET 4这就是为什么:P

+0

将帮助说明在哪里完全在web.config你把它... – mare 2010-03-18 10:32:32

+2

里面的''开始/结束标签 – Omar 2010-03-18 12:04:24

+0

这不适合我,我不得不使用属性MVC2 RTM – 2010-06-16 12:48:45

2

在此处插入关于XSS的强制性警告。

您用ValidateInputAttribute饰控制器(或动作)应该是不够的,因为所有的验证是在

我刚才想这对现在的动作在ASP.NET MVC该控制器级别进行,当我输出它时,它会返回一个很好的邪恶警报(),所以我想冒险猜测这里还有其他事情要做。

您是否在任何地方设置了HandleErrorAttribute

+0

我实现了自定义的ViewPage你可以看到http://stackoverflow.com/questions/1480373/generic-inhertied-viewpage -and-new-property,查看是否有任何事情导致它使用ASP.NET MVC 2 – Omar 2009-10-30 10:37:50

+0

无HandleError属性进行验证。 – Omar 2009-10-30 10:50:59