2010-12-05 5 views
18

Pour votre information, je me sers 4.0 .NET/MVC 3.ASP.NET MVC 3 ValidateRequest (false) ne fonctionne pas avec FormCollection

Dans mon contrôleur, voici mon code:

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

Tout fonctionne bien quand je ne sais pas HTML, je sais que le bon contrôleur est en train d'être viré. En outre, je suit correctement défini dans mes fichiers web.config:

<httpRuntime requestValidationMode="2.0"/> 

-je obtenir que ce problème quand j'inclus le FormCollection (qui est nécessaire pour ce contrôleur particulier). Alors qu'est-ce que je fais mal?

[je l'ai fait ce qui a été proposé sur les questions suivantes, et ils travaillent aussi longtemps qu'il n'y a pas FormCollection. Aucun d'entre eux offrent une solution avec un FormCollection inclus]

Répondre

21

Je pense que je l'ai résolu mon énigme, avec l'aide de ce forum: http://forums.asp.net/p/1621677/4163625.aspx

Je viens modifié mon contrôleur afin qu'il n'a pas accepté le contrôleur et la forme à la place attrapé unvalidated collection de la demande [avec l'aide de System.Web.Helpers].

using System.Web.Helpers; 

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

BTW Je crois que ce bug est corrigé pour la prochaine version de ASP.NET MVC 3, cette solution de contournement ne sera pas nécessaire lors de la mise à niveau vers cette version. – Eilon

+0

J'ai essayé d'ajouter une référence à la DLL 'System.Web.Helpers', et j'ai ajouté un' using System.Web.Helpers' dans mon contrôleur, mais il n'accepte pas 'Unvalidated()' comme méthode sous 'Request' . Im en utilisant .NET 4 et MVC 3 RC. – Martin

+0

vient de répondre à votre @ Martin question: http://stackoverflow.com/questions/4392186/validate-request-with-request-unvalidated-in-asp-mvc-3-rc-and-net-4 – marcind

7

Je viens d'installer ASP.NET MVC 3 RC2, et ce bogue a été corrigé. Le code suivant fonctionne comme prévu maintenant.

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