ValidateRequest = False, но в действии оно все еще True и игнорируется? - PullRequest
8 голосов
/ 23 апреля 2010

я хочу отключить RequestValidation для определенного представления в ASP.NET MVC 2.0 RTM .поэтому я добавил некоторые необходимые для просмотра раздела директивы страницы, как показано ниже:

<%@ 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 тоже не отключен!

в последней попытке я установил RequestValidation в false в Web.config файле, как показано ниже:

<pages validateRequest="false" />

RequestValidation все еще не включенвыкл!

Почему?заранее благодарен;)

Ответы [ 2 ]

13 голосов
/ 23 апреля 2010

Если вы используете asp.net 4.0, поведение функции запроса проверки было изменено с версии 2.0.Ознакомьтесь с документом о критических изменениях здесь .В этом случае вы можете решить проблемы, установив поведение проверки запроса обратно в 2.0 в файле web.config, например:

<httpRuntime requestValidationMode="2.0" />
0 голосов
/ 05 августа 2011

просто добавьте

[ValidateInput (false)] *

в функции контроллера, но не забудьте закодировать значение, чтобы предотвратить вредный код

    [ValidateInput(false)]
    public string Browse(string test)
    {
        string message = HttpUtility.HtmlEncode("Value = " + test);
        return message;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...