Ответ 1
Добавьте это в свой web.config:
<httpRuntime requestValidationMode="2.0" />
Я использую CKEditor/CKFinder в качестве редактора wysiwyg на моем сайте MVC.NET.
Я установил [ValidateInput(false)]
, и он работает при отладке локально, но при публикации сайта я получаю следующую ошибку:
A potentially dangerous Request.Form value was detected from the client (message="<p>
<em>Testing</e...").
может кто-нибудь объяснить, почему опубликованный сайт отличается от локального сайта, особенно когда я установил [ValidateInput(false)]
?
* Обновление: * Я использую .Net 3.5, поэтому не должен [ValidateInput(false)]
выработать поле?
Добавьте это в свой web.config:
<httpRuntime requestValidationMode="2.0" />
Вы пытались установить свойство htmlEncodeOutput?
> CKEDITOR.replace('editor1', {
> htmlEncodeOutput: true });
Это должно кодировать вывод, и вы должны быть в состоянии избежать установки requestValidationMode.
Документация для него находится здесь: документация ckEditor
Просто добавьте аннотацию к методу Post. Действие как [ValidateInput (false)]
[HttpPost]
[ValidateAntiForgeryToken]
[ValidateInput(false)]
public ActionResult Detail(ModelClass m)
{ return View(); }
ValidateRequest = "ложь" Добавьте это на определенной странице.
Пример:
Добавьте ValidateRequest="false"
на свою страницу:
<%@ Page Language="C#" AutoEventWireup="false" Codebehind="MyForm.aspx.cs" Inherits="Proj.MyForm" ValidateRequest="false"%>
Или добавьте в web.config при использовании .NET Framework 4.0 (Visual Studio 2010)
<httpRuntime requestValidationMode="2.0" />
Используйте Request.Unvalidated["myTextBox"]
например,
var text = Request.Unvalidated["myTextBox"];
где "myTextBox" - это поле формы, из которого вы хотите разрешить размещение HTML.