ASP.NET MVC 3 ValidateRequest (false) не работает с FormCollection

FYI Я использую .NET 4.0/MVC 3.

В моем контроллере следующий код:

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(ContentTemplateView contentTemplateView, FormCollection collection)

Все работает нормально, когда я не вхожу в HTML, поэтому я знаю, что соответствующий контроллер уволен. Кроме того, в моих файлах web.config я правильно задал следующие параметры:

<httpRuntime requestValidationMode="2.0"/>

Я получаю эту проблему только в том случае, если я включаю FormCollection (который необходим для этого конкретного контроллера). Итак, что именно я делаю неправильно?

[Я сделал то, что было предложено по следующим вопросам, и они работают до тех пор, пока не будет FormCollection. Ни один из них не предлагает решение с включенным FormCollection]

Ответы

Ответ 1

Думаю, я решил свою собственную загадку с помощью этого форума: http://forums.asp.net/p/1621677/4163625.aspx

Я только что изменил свой контроллер, чтобы он не принял контроллер, и вместо этого захватил сборку неутвержденной формы из запроса [с помощью System.Web.Helpers].

using System.Web.Helpers;

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(ContentTemplateView contentTemplateView)
{
    FormCollection collection = new FormCollection(Request.Unvalidated.Form);

Ответ 2

Я только что установил ASP.NET MVC 3 RC2, и эта ошибка исправлена. Следующий код работает как ожидается.

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(FormCollection form)
{
}