2010-04-11 23 views
0

Je travaille sur un site MVC en utilisant NHaml pour le moteur de vue.Spécification d'un attribut de directive Page sur une page NHaml

J'ai une page qui doit soumettre le code HTML en tant que valeur de formulaire et je reçois l'erreur System.Web.HttpRequestValidationException.

Je souhaite spécifier le <% @ Page validateRequest = "false"%> afin que cette page permette l'envoi de ces données mais je ne suis pas sûr de la façon de le faire avec NHaml générant les pages.

Note secondaire à ce sujet:
L'éditeur que j'utilisais était TinyMCE et j'ai trouvé qu'il avait une option pour encoder la sortie, ainsi il ne déclenche pas la validation anti-html.

Bien sûr, votre valeur est encodée, donc vous devez vous assurer de la décoder au bon moment.

Voir http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/encoding

Répondre

2

Vous pouvez essayer annoter votre action de contrôleur avec le ValidateInputAttribute:

[ValidateInput(false)] 
public ActionResult Index() 
{ 
    // ...method body 
} 

Cela pourrait aussi être fait dans le fichier de configuration pour l'ensemble de l'application:

<configuration> 
    <system.web> 
     <pages validateRequest="false" /> 
    </system.web> 
</configuration> 
+0

J'étais conscient du monde mais ne voulait pas le faire. L'attribut sur le contrôleur a fonctionné, merci. – ManiacZX

+0

@ManiacZX, vous avez raison, mettre ceci dans web.config pourrait représenter un risque de sécurité car il s'appliquera à toutes les actions. –