2010-12-05 17 views
18

FYI estoy usando .NET 4.0/MVC 3.ASP.NET MVC 3 ValidateRequest (falsa) que no trabajan con FormCollection

En mi controlador, el siguiente es mi código:

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

todo funciona bien cuando no ingreso HTML, entonces sé que se está disparando el controlador apropiado. Además, he siguiente conjunto adecuadamente en mis archivos web.config:

<httpRuntime requestValidationMode="2.0"/> 

solo me dan este problema cuando incluyo el FormCollection (que se necesita para este controlador en particular). Entonces, ¿qué estoy haciendo exactamente mal?

[He hecho lo que se propuso en las siguientes preguntas, y funcionan mientras no haya FormCollection. Ninguno de ellos ofrece una solución con un FormCollection incluida]

Respuesta

21

Creo que he resuelto mi propio enigma, con la ayuda de este foro: http://forums.asp.net/p/1621677/4163625.aspx

Acabo de modificar mi Controlador para que no aceptara el Controlador, y en su lugar tomé la forma no validada colección de la Solicitud [con la ayuda de System.Web.Helpers].

using System.Web.Helpers; 

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

Por cierto creo que este error se corrige para la próxima versión de ASP.NET MVC 3, por lo que esta solución no será necesaria cuando actualice a esa versión. – Eilon

+0

He intentado agregar una referencia al dll 'System.Web.Helpers', y agregué un' usando System.Web.Helpers' en mi controlador, pero no aceptará 'Unvalidated()' como un método en 'Request' . Estoy usando .NET 4 y MVC 3 RC. – Martin

+0

@Martin acaba de responder su pregunta: http://stackoverflow.com/questions/4392186/validate-request-with-request-unvalidated-in-asp-mvc-3-rc-and-net-4 – marcind

7

Acabo de instalar ASP.NET MVC 3 RC2, y este error ha sido resuelto. El siguiente código funciona como se espera ahora.

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