Ошибка "потенциально опасное значение Request.Form..", когда ModelState.IsValid имеет значение false
В одном из наших приложений 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 ответа
Только что это обрезать, исправить было обновить конфигурационный файл fck fckconfig.js
FCKConfig.HtmlEncodeOutput = false;
должно быть
FCKConfig.HtmlEncodeOutput = true ;
Скорее всего, какой-то HTML-вывод из вашего FCKEditor будет каким-то образом отправлен.
Вы можете попробовать отключить проверку:
public MyController
{
[ValidateInput (false)]
public ActionResult MyAction ()
{
}
}
Просто добавьте следующее к вашему действию:
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SomeAction() {}
Я предполагаю, что этот проект был перенесен из RTM-проекта до 1.0.
Оригинальный ASP.NET имеет проверку "опасного ввода" на уровне страницы, которую вы запускаете. Мы отключили его для всей системы, изменив файл Web.config в папке Views, но я точно не помню, когда мы внесли это изменение. Если ваш проект предшествует этому изменению, у вас не будет этого параметра в вашем файле Web.config в папке Views.
Таким образом, вы можете создать новый проект MVC и посмотреть файл Web.config, чтобы увидеть, какие настройки вы можете скопировать. Вы также можете отключить это постранично, если хотите.