Вопрос

Как я могу использовать HTML.Textareforwithoutout, кодируя его? Я знаю, что это риск безопасности, но у меня есть отдельный класс, который демонстрирует любой текст.

Пример:

@ Html.textareafor (модель => model.postodyText, 10, 100, 1)

Я планирую использовать его с Tinymce.

С уважением ворона

ОБНОВИТЬЯ использую новый двигатель Razor View.

Это было полезно?

Решение

Вам нужно будет катиться:

<textarea cols="100" id="PostBodyText" name="PostBodyText" rows="10">
    @MvcHtmlString.Create(Model.PostBodyText)
</textarea>

Конечно, с точки зрения безопасности это может быть очень опасно, поскольку ваш сайт теперь уязвим к XSS-атакам. Таким образом, вопрос заключается в том, почему иметь отдельный класс, который демонстрирует весь текст, когда вы можете просто полагаться на HTML Hemper, чтобы сделать работу для вас?

Другие советы

В качестве альтернативного варианта вы можете использовать ValidateInput, как описано здесь. Отказ Пример в стиле MVC будет:

[ValidateInput(false)]
public ActionResult Method(){
     return View()
}

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(){
    // your stuff here
    RedirectToAction("index"); // or something 
}

Я думаю, что это больше MVC способ пойти. Теперь ваш контроллер говорит вам, что в этом методе контроллера есть проблема безопасности. Ваш взгляд может быть любой обычный вид с использованием HTML-помощников и т. Д. Обратите внимание, что это позволяет всевозможные входные данные, а не отфильтрованы. Это будет работать с Tinymce, хотя.

//редактировать

WooPs я вижу, вам нужно добавить

<httpRuntime requestValidationMode="2.0"/>

в WebConfig, а также в новых версиях MVC. Думаю, это не может быть никакой способ пойти.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top