Asp.Net 4.0 MVC 3: опубликовать HTML-код

#asp.net-mvc #validation

#asp.net-mvc #проверка

Вопрос:

При публикации содержимого текстового поля, содержащего html-код, я получаю сообщение об ошибке, касающееся возможного опасного содержимого. Я прочитал, как настроить старое поведение 2.0, но у меня это не работает, и я бы предпочел иметь чистое решение. Я, вероятно, не единственный человек, которому нужно опубликовать html, поэтому я удивляюсь, что я не смог найти решение для отключения этого поведения. Любой намек, каков правильный способ решения этой проблемы?

Ответ №1:

Для вашей модели ввода вы можете определить:

 public class FormViewModel
{
    [AllowHtml]
    public string Content { get; set; }
}
  

Где Content находится ваше соответствующее поле:

 @Html.EditorFor(m => m.Content)
  

Комментарии:

1. Лол, может быть, тебе следует? Это помогает инкапсулировать все ваши входные параметры в структурированную модель и дает вам преимущества привязки модели и проверки модели…

Ответ №2:

Добавили ли вы атрибут Validate Input в метод контроллера?

 [ValidateInput(false)]
  

Я думаю, они нужны вам только в вашем web.config, если вы используете веб-формы, а также mvc, но, возможно, стоит попробовать.

 <system.web>
    <httpRuntime requestValidationMode="2.0" />
</system.web>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>
  

Комментарии:

1. модификация web.confix в MVC 3 не требуется

2. нехорошо ложно выполнять всю проверку только для одного поля, я предпочитаю ответ Мэтью Эббота.