tutorial - ASP.NET MVC 3 ValidateRequest(falso) no funciona con FormCollection
asp.net mvc versions (3)
FYI estoy usando .NET 4.0 / MVC 3.
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 seguido correctamente los ajustes en mis archivos web.config:
<httpRuntime requestValidationMode="2.0"/>
Solo consigo este problema cuando incluyo FormCollection (que es necesario 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 FormCollection incluido]
Acabo de instalar ASP.NET MVC 3 RC2, y este error ha sido reparado. El siguiente código funciona como se espera ahora.
[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(FormCollection form)
{
}
Si está utilizando carpetas de modelo personalizadas y [ValidateInput (false)] no funciona, entonces puede encontrar una solución aquí: http://blogs.taiga.nl/martijn/2011/09/29/custom-model-binders-and -request-validation /
Creo que he resuelto mi propio acertijo, 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 agarré la colección de formularios no validados 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);