2010-12-05 15 views
18

FYI I .NET 4.0/MVC 3.ASP.NET MVC 3 ValidateRequest (false) nicht mit Formcollection arbeiten

In meinem Controller verwende, ist die folgende mein Code:

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

alles funktioniert gut, wenn ich nicht HTML eingeben, so weiß ich, dass der richtige Controller ausgelöst wird. Auch ich habe folgende richtig in meinen web.config-Dateien festgelegt:

<httpRuntime requestValidationMode="2.0"/> 

ich nur dieses Problem, wenn ich schließe die Formcollection (die für diesen speziellen Regler benötigt wird). Also was genau mache ich falsch?

[Ich habe getan, was zu den folgenden Fragen vorgeschlagen wurde, und sie funktionieren, solange keine FormCollection vorhanden ist. Keiner von ihnen bietet eine Lösung mit einem eingeschlossenen Formcollection]

Antwort

21

Ich glaube, ich habe meine eigenen Rätsel gelöst, mit Hilfe dieses Forum: http://forums.asp.net/p/1621677/4163625.aspx

Ich habe gerade meinen Controller so geändert, dass er den Controller nicht akzeptiert hat, und stattdessen das nicht validierte Formular abgerufen Sammlung aus der Anfrage [mit Hilfe von System.Web.Helpers].

using System.Web.Helpers; 

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

BTW ich glaube, dieser Fehler für die nächste Version von fixiert ASP.NET MVC 3, daher wird diese Problemumgehung nicht benötigt, wenn Sie auf diese Version aktualisieren. – Eilon

+0

Ich habe versucht, einen Verweis auf die 'System.Web.Helpers' DLL hinzufügen und fügte hinzu,' using System.Web.Helpers' in meinem Controller, aber es akzeptiert 'Unvalidated()' als eine Methode unter 'Request' . Ich benutze .NET 4 und MVC 3 RC. – Martin

+0

@Martin hat gerade Ihre Frage beantwortet: http://stackoverflow.com/questions/4392186/validate-request-with-request-unvalidated-in-asp-mvc-3-rc-and-net-4 – marcind

7

Ich habe gerade ASP.NET MVC 3 RC2 installiert, und dieser Fehler wurde behoben. Der folgende Code funktioniert jetzt wie erwartet.

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