J'ai un modèle MVC 4 et j'en crée un HTML dans la vue en utilisant @ Html.TextBoxFor. Dans le modèle pour l'un des domaines que j'ai un attribut RegularExpression défini comme suit:Est-il possible de désactiver la validation côté client pour une seule propriété de modèle dans MVC?
[Required(ErrorMessageResourceType=typeof(ResourceFile), ErrorMessageResourceName="ResourceName1"
[RegularExpression(@"\w{3,5}", ErrorMessageResourceType=typeof(ResourceFile), ErrorMessageResourceName="ResourceName2")]
public string TestProperty { get; set; }
Notez l'expression est plus complexe que cela, mais ce que j'ai ici est adapté pour les tests. J'ai mis en place la validation côté client discrète comme décrit ici: http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html
Le problème que j'ai est que j'ai besoin d'accepter les caractères russes. Les expressions régulières de .Net ont une signification différente pour \ w dans les expressions régulières de javascript et, en tant que telle, la validation côté serveur fonctionne comme je l'espère et le côté client ne fonctionne pas.
Est-il possible de désactiver la validation côté client pour l'attribut RegularExpression sans le désactiver pour l'attribut Required?
A défaut, est-il possible de désactiver la validation côté client pour cette propriété unique sans désactiver toutes les autres propriétés de cet objet modèle?
Pouvez-vous supprimer l'attribut regex et juste valider manuellement? –
Bien sûr, mais j'espérais une meilleure solution que cela. –
Je pense que vous allez avoir à faire votre propre validation, lancer votre propre attribut personnalisé qui prend russe dans le compte ou modifier l'expression régulière pour correspondre à ce que vous essayez de faire correspondre. –