Я столкнулся с той же проблемой, хотя я добавил [System.Web.Mvc.AllowHtml]
к соответствующему свойству, как описано в некоторых ответах.
В моем случае у меня есть класс UnhandledExceptionFilter
, который обращается к объекту запроса до проверки 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)
{
...