@ Html.EditorFor Comment faire un attribut type = "email"
Je peux le faire facilement à l'aide d'un TextBoxFor
mais comment puis-je faire avec un EditorFor
?
J'ai pensé à l'aide de la DataAnnotation [DataType(DataType.EmailAddress)]
mais ne le font pas.
Je ne comprends pas très bien ce que le DataType
annotation en fait, car il ne semble pas faire quoi que ce soit au premier coup d'œil.
source d'informationauteur Shane LeBlanc
Vous devez vous connecter pour publier un commentaire.
La
EditorFor
méthode d'assistance est quelque peu limitée de la boîte et n'a pas encore été manifesté pour soutenir le HTML5type="email"
attribut.Vos options dès maintenant semblent être, soit à l'aide de
TextBoxFor
ou la création d'un modèle personnalisé qui va vous permettre de définir l'entrée de latype
attribut. Voici un autre thread qui passe en revue certaines des options pour créer vos propres modèles.La
DataAnnotation [DataType(DataType.EmailAddress)]
est en fait très utile. Il définit laid
etname
de votre champ de formulaire pouremail
que vous pouvez utiliser avec jQuery validation de montrer à l'utilisateur côté client les messages de validation. L'application de laDataAnnotation
à votre modèle de classe signifie également que l'e-mail de propriété sur votre modèle sera validé automatiquement sur le côté serveur. Si vous activez discrète de validation dans votre application, vous obtenez le client et les serveurs de validation côté presque gratuit.Vous pouvez remplacer les Attributs HTML, pour qui un navigateur de secours à
type='text'
si elles ne prennent pas en charge:@Html.TextBoxFor(m => m.Email, new { @type = "email" })
il semble être pris en charge maintenant.
Comme un complément à jortizromo's réponse, vous avez au moins deux options:
Précisant
@type
dans lehtmlAttributes
paramètre de la méthodeEditorFor()
comme dansÀ l'aide de la
EmailAddress
annotation de l'attribut deSystem.ComponentModel.DataAnnotations
espace de noms dans le modèle de définition de classe pour le correspondantEmail
de la propriété et un simple appel à la méthode EditorFor() (ceci fournit la validation du code HTML des balises de données qui pourrait être une bonne ou une mauvaise idée en fonction de votre tâche) que dansViewModel
Rasoir Vue