Asp.net mvc3, html.textareafor без кодировки?
-
27-09-2019 - |
Вопрос
Как я могу использовать 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. Думаю, это не может быть никакой способ пойти.
Использовать [AllowHtml]
на модели модели. Как я узнал в В ASP.NET MVC 3, как я могу получить в модели, используя синтаксис бритвы в представлении Create ()?.