«Потенциально опасное значение Request.Form ..», когда ModelState.IsValid имеет значение false - PullRequest
0 голосов
/ 14 июля 2009

В одном из наших приложений ASP.NET MVC мы используем FCKEditor, чтобы позволить пользователям вводить форматированный текст. Чтобы отключить проверку в действиях контроллера, мы устанавливаем атрибут

[ValidateInput(false)]

Пользователи могут сохранять и изменять форматированный текст, если на странице отсутствуют ошибки проверки бизнеса.

Если какая-либо из бизнес-проверок завершается неудачно и для ModelState.IsValid задано значение false, при отображении страницы возникает следующее исключение. Может кто-нибудь сообщить мне, как решить эту проблему?

Потенциально опасное значение Request.Form обнаружено клиентом (Programme_Overview = "

Вот код

    [ValidateInput(false)]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Schedule(FormCollection formValues)
    {
      // some code
      if (ModelState.IsValid)
        {
            //do something here...
        }
        else
        {               
            return View(programDetails);
        }


     }

    //// View code that render the fckeditor text area
    <%= Html.TextArea("Programme_Overview", Model.Programme.Overview, new { row = 7 })%>

Ответы [ 4 ]

1 голос
/ 25 февраля 2011

только что это обрезалось, исправить было обновить конфигурационный файл fck fckconfig.js

FCKConfig.HtmlEncodeOutput = false;

должно быть

FCKConfig.HtmlEncodeOutput = true ;
0 голосов
/ 14 июля 2009

Просто добавьте следующее к вашему действию:

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SomeAction() {}
0 голосов
/ 15 июля 2009

Я предполагаю, что этот проект был перенесен из RTM-проекта до 1.0.

Оригинальный ASP.NET имеет проверку «опасного ввода» на уровне страниц, которую вы вызываете. Мы отключили его для всей системы, изменив файл Web.config в папке Views, но я точно не помню, когда мы внесли это изменение. Если ваш проект предшествует этому изменению, то у вас не будет этого параметра в файле Web.config в папке Views.

Таким образом, вы можете создать новый проект MVC и взглянуть на файл Web.config, чтобы увидеть, какие настройки вы можете скопировать. Вы также можете отключить это постранично, если хотите.

http://www.asp.net/learn/whitepapers/request-validation/

0 голосов
/ 14 июля 2009

Вероятно, какой-то вывод HTML из вашего FCKEditor будет каким-то образом отправлен.

Вы можете попытаться отключить проверку:

public MyController
{
    [ValidateInput (false)]
    public ActionResult MyAction ()
    {
    }
}
...