Je reçois une valeur codée HTML sur [RegularExpression]
validateur MVC quand il écrit le code au client. Ce n'est pas un problème pour le message d'erreur (car il doit être codé pour un affichage plus tard), mais il est vraiment visse le regex :) Sur un champ de chaîne, mon expression régulière ressemble à ceci:RegularExpression validateur encodage regex < & > symboles comme < >, ce qui provoque la validation jQuery échec
[RegularExpression(@"^[^\<\>]*$", ErrorMessage = "May not contain <,>")]
lorsque cela s'écrit par MVC3, il apparaît ressembler à ceci:
<input ... data-val-regex-pattern="^[^\&lt;\&gt;]*$"
data-val-regex="May not contain &lt;,&gt;" .../>
Edit:
- en raison de l'encodage, il attrapait aussi
<>
, mais le déclenchement aussi sur les mots avec: t
comme timg
comme chèvre- probablement
;
mais je ne l'ai pas testé il
Le but de cette regex est de filtrer et <>, plutôt que de désactiver toutes les validations sur la page et préforme sur le côté serveur. Ce champ accepte plusieurs langages Unicode et ne comporte que 12 caractères.
Mes choix ressemblent:
- test de sanité d'entrée Désactiver les asp.net sur une seule page et vérifier que l'action ne
- Trouver un regex complexe pour correspondre 3+ unicode gammes +/- tirets & numéros - .net + js compat.
- Ecrire un validateur regex personnalisé qui ne dispose pas de validation côté client
- Utilisez un
[Remote]
validateur pour le faire sur le côté serveur comme nous le faisons pour d'autres domaines
Je penche vers # 3 maintenant, mais je voudrais vraiment trouver un moyen de garder la fonctionnalité intégrée. Est-il possible de désactiver cette sortie d'échappement?
vous pouvez également utiliser la validation à distance pour ce faire – cpoDesign
Oui, bien sûr. Cela semble assez excessif pour une regex, mais cela devrait être sur la liste des solutions possibles. –