У меня есть форма, в которой я использую ckeditor. Эта форма отлично работала в Asp.Net 2.0 и 3.5, но теперь она не работает в Asp.Net 4+. У меня есть ValidateRequest = "ложная" директива. Какие-либо предложения?
156
У меня есть форма, в которой я использую ckeditor. Эта форма отлично работала в Asp.Net 2.0 и 3.5, но теперь она не работает в Asp.Net 4+. У меня есть ValidateRequest = "ложная" директива. Какие-либо предложения?
Ответы:
Нашел решение на странице ошибок. Просто нужно добавить requestValidationMode = "2.0"
Информация MSDN: свойство HttpRuntimeSection.RequestValidationMode
источник
Есть способ повернуть проверку обратно на 2.0 для одной страницы. Просто добавьте следующий код в ваш web.config:
источник
Я знаю, что это старый вопрос, но если вы столкнулись с этой проблемой в MVC 3, то вы можете украсить свой
ActionMethod
с[ValidateInput(false)]
и просто отключить проверку запроса для одногоActionMethod
, что удобно. И вам не нужно вносить какие-либо изменения вweb.config
файл, так что вы все равно можете использовать проверку запросов .NET 4 везде.например
источник
Это работает без изменения режима проверки.
Вы должны использовать
System.Web.Helpers.Validation.Unvalidated
помощника изSystem.Web.WebPages.dll
. Он собирается вернутьUnvalidatedRequestValues
объект, который позволяет получить доступ к форме и QueryString без проверки.Например,
У меня работает для MVC3 и .NET 4.
источник
Обратите внимание, что другой подход - придерживаться поведения валидации 4.0, но определить свой собственный класс, который наследуется от
RequestValidator
set:(где
YourNamespace.YourValidator
хорошо, вы должны быть в состоянии угадать ...)Таким образом вы сохраняете преимущества поведения 4.0s (в частности, то, что проверка происходит раньше при обработке), и в то же время разрешаете запросы, которые необходимо пропустить.
источник