请求验证 - ASP.NET MVC 2

Oma*_*mar 20 asp.net-mvc asp.net-4.0 request-validation

ASP.NET MVC 2的请求验证是否已更改,更准确地说,未验证?

我做了以下事情:

Web.configs(在App目录和Views目录中)

<pages
    validateRequest="false"
Run Code Online (Sandbox Code Playgroud)

控制器/动作属性

[ValidateInput(false)]
Run Code Online (Sandbox Code Playgroud)

在@Page View Directive中

ValidateRequest="false"
Run Code Online (Sandbox Code Playgroud)

页面仍然有效,发布HTML内容时会引发异常.

UPDATE

创建了一个新的ASP.NET MVC 2应用程序,我修改了Home Controller的索引

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

        return View();
    }
Run Code Online (Sandbox Code Playgroud)

和我的视图页面

<% using(Html.BeginForm()){ %>
    <%= Html.TextBox("InputText") %>
    <input type="submit" />
<% } %>
Run Code Online (Sandbox Code Playgroud)

仍然是同一个问题,抛出异常.

Oma*_*mar 31

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

要允许页面覆盖应用程序请求验证设置,请在配置部分中设置requestValidationMode ="2.0".设置此值后,您可以通过设置validateRequest ="false"来禁用请求验证

我把它放在应用程序的web.config中

<system.web>
  <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

它起作用了.

更新:

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

  • 在`<system.web>`开始/结束标记内 (2认同)