Отключение валидации данных HTTP-запроса в ASP.NET WebForms и ASP.NET MVC
По умолчанию все данные HTTP-запроса подвергаются проверке на наличие потенциально небезопасных данных (клиентских скриптов, HTML-разметки и т.п.), в случае обнаружения подобных данных выбрасывается исключение, например такого вида:
A potentially dangerous Request.QueryString value was detected from the client....
или
A potentially dangerous Request.Form value was detected from the client....
В случае использования WYSIWYG редактора для редактирования контента эту возможность необходимо отключить. Сделать это можно на уровне страницы:
<%@ Page validateRequest="false" %>
Или для всего приложения в Web.config:
<system.web> <pages validateRequest="false" /> </system.web>
Но... оба эти способа не работают для ASP.NET MVC. Для MVC нужно использовать атрибут [ValidateInput] на уровне класса контроллера
или метода-экшена, например, так:
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult Add(SomeEntity entity)
{
...
}
