Le validateur DataAnnotations ne fonctionne pas dans asp.net mvc 4 razor view, lors de l'utilisation des caractères spéciaux dans l'expression régulière.
Modèle :
[StringLength(100)]
[Display(Description = "First Name")]
[RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage = "Invalid First Name")]
public string FirstName { get; set; }
Razor View :
@Html.TextBoxFor(model => Model.FirstName, new { })
@Html.ValidationMessageFor(model => Model.FirstName)
La validation discrète est rendue dans la vue comme :
<input type="text" value="" tabindex="1" style="height:auto;" name="FirstName" maxlength="100" id="FirstName" data-val-regex-pattern="^([a-zA-Z0-9 .&amp;&#39;-]+)$" data-val-regex="Invalid First Name" data-val-length-max="100" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val="true" class="textfield ui-input-text ui-body-d ui-corner-all ui-shadow-inset valid">
Le modèle regex dans le html ci-dessus n'est pas rendu comme spécifié dans l'expression régulière du modèle, ce qui entraîne une erreur même en entrant les données valides ( Sam's
).
Comment puis-je gérer cela ?
--UPDATE--
J'ai mis à jour le code selon la suggestion de @Rick.
[StringLength(100)]
[Display(Description = "First Name")]
[RegularExpression("([a-zA-Z0-9 .&'-]+)", ErrorMessage = "Enter only alphabets and numbers of First Name")]
public string FirstName { get; set; }
View Source montre ce qui suit :
<input data-val="true" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val-length-max="100" data-val-regex="Enter only alphabets and numbers of First Name" data-val-regex-pattern="([a-zA-Z0-9 .&amp;&#39;-]+)" id="FirstName" maxlength="100" name="FirstName" type="text" value="" />
J'ai toujours le même problème.
0 votes
Nous venons d'avoir un problème similaire où nous voulons qu'un "  ;" soit craché dans le ErrorMessage
0 votes
Bonjour, je suis un collègue de TweeZz ;] Oui, nous l'avons corrigé à la fin, mais c'était un correctif plutôt rudimentaire. Lors de la production d'attributs de validation discrets, nous avons décodé en html tous les messages de validation pour les validateurs regex, vous pourriez faire de même dans votre cas.
0 votes
J'ai confirmé une différence entre la mise à jour des outils MVC 3 et MVC 4 Beta. J'ai ouvert un bug et nous enquêtons.
0 votes
Nous sommes en train de ramener notre produit principal à MVC3 à cause de cela (nous localisons beaucoup, donc le double encodage côté client est un gros obstacle pour nous). Nous aimerions avoir un lien vers l'article de connexion pour pouvoir suivre ce problème...
0 votes
Bonjour Prasad. Avez-vous trouvé une solution à ce problème ?
1 votes
Salut teahupoo, Nous l'avons gardé comme un problème connu dans notre projet comme ce que Microsoft fait maintenant. Nous sommes toujours à la recherche d'une solution. Espérons que Microsoft trouvera bientôt une solution.
0 votes
Merci Prasad. J'ai le même problème et je ne vois pas de solution rapide...