2 votes

ActionMethodSelectorAttribute + AllowHtml

J'ai un attribut ActionMethodSelectorAttribute dans lequel j'ai la ligne suivante :

 var req = controllerContext.RequestContext.HttpContext.Request.Form.AllKeys.Any() ? controllerContext.RequestContext.HttpContext.Request.Form : controllerContext.RequestContext.HttpContext.Request.QueryString;

Cependant, cela se produit lorsque le formulaire affiche un contenu HTML.

J'ai bien AllowHtml sur l'InputModel qui est posté et l'action elle-même a bien ValidateInput(false).

Je pense que le problème réside dans le fait que nous ne sommes pas encore allés aussi loin dans le pipeline

Quelqu'un sait-il comment autoriser cela pour ce filtre ?

4voto

Lukáš Novotný Points 5948

AllowHtml ne fonctionne que pour le classeur modèle IIRC et pour les ValidateInput est trop tôt car il n'est pas encore certain de l'action qui sera exécutée. J'ai résolu ce problème il y a quelques jours et après quelques recherches, j'ai trouvé ValidationUtility en Microsoft.Web.Infrastructure.DynamicValidationHelper :

Func<NameValueCollection> formGetter;
Func<NameValueCollection> queryStringGetter;

ValidationUtility.GetUnvalidatedCollections(HttpContext.Current, out formGetter, out queryStringGetter);

var form = formGetter();
var queryString = queryStringGetter()

Ce n'est pas très joli, mais ça marche :) Notez également que ValidationUtility est caché de l'intellisense.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X