Я столкнулся с той же проблемой, хотя добавил [System.Web.Mvc.AllowHtml]
к соответствующему свойству, как описано в некоторых ответах.
В моем случае у меня есть UnhandledExceptionFilter
класс, который обращается к объекту Request до того, как выполняется проверка MVC (и поэтому AllowHtml не действует), и этот доступ вызывает файл [HttpRequestValidationException] A potentially dangerous Request.Form value was detected from the client
.
Это означает, что доступ к определенным свойствам объекта Request неявно запускает проверку (в моем случае это Params
свойство).
Решение для предотвращения проверки задокументировано в MSDN.
Чтобы отключить проверку запроса для определенного поля в запросе (например, для входного элемента или значения строки запроса), вызовите метод Request.Unvalidated при получении элемента, как показано в следующем примере
Поэтому, если у вас есть такой код
var lParams = aRequestContext.HttpContext.Request.Params;
if (lParams.Count > 0)
{
...
измените это на
var lUnvalidatedRequest = aRequestContext.HttpContext.Request.Unvalidated;
var lForm = lUnvalidatedRequest.Form;
if (lForm.Count > 0)
{
...
или просто используйте Form
свойство, которое, похоже, не запускает проверку
var lForm = aRequestContext.HttpContext.Request.Form;
if (lForm.Count > 0)
{
...