Les utilisations de Type de données.EmailAddress en asp/.net/mvc
J'ai un Compte Modèle dans lequel je suis à l'aide de l'Adresse Email comme nom d'utilisateur
public class RegisterModel
{
[Required]
[Display(Name = "Email Address")]
[DataType(DataType.EmailAddress)]
public string UserName { get; set; }
J'ai conçu une classe personnalisée pour vérifier e-mail. Mais j'ai récemment remarqué que le DataType.EmailAddress
. J'ai essayé d'utiliser ce Type de données, comme indiqué dans le code ci-dessus pour vérifier si je peux valider le nom d'utilisateur sans ma Classe Personnalisée, mais il échoue. Donc ma question est comment est ce Type de données utiles dans .NET
. Il semble être de ne rien faire sur mon Formulaire d'Inscription.
Edit: Il dosent même de valider l'encontre d'une regex. Par exemple nom d'utilisateur: SS, ssssss, tttt, etc
tous passer comme les e-mails valides.
Edit: les Gens j'ai une classe pour valider l'e-mail dans le code derrière. Je sais que le chapeau sont de la complexité de la validation des e-Mails. Je ne suis pas demandant comment valider l'e-mail. Je suis juste de s'interroger sur les usages de ce type de données.
- Vous pouvez faire un EditorTemplate.
- double possible de mvc [Type de données(DataType.EmailAddress) pas de validation
- Veuillez voir mon edit pourquoi cette question est différente.
- Type de données de l'attribut est utilisé pour des raisons de formatage, pas de validation.
- stackoverflow.com/questions/6550487/...
- pouvez-vous nous expliquer la manière dont cette question explique ce que ce type de données n'?
- Si vous avez regardé les réponses, il vous dira. Au lieu de cela vous avez juste regardé la question, vous avez à faire un peu de travail vous-même vous savez
- Je ne vais regarder le lien et la réponse sommet a) n'a pas d'adresse Type de données à l'aide de[e-mail] et b), est l'utilisation des éditeurs qui ne touchent pas à ce que ce Type de données n' (indice: il ne change que le modèle d'affichage). La seule réponse qui avait à distance, rien à voir avec votre Adresse de courrier électronique de type a été supprimé et ne pouvait pas être vu par lui (ou vous même?)
DataType attributes are used by the templated views when using editorfor()
- ce ce Type de données n'". Ne pas essayer de démarrer un commentaire de guerre ici, plutôt poliment indiquant que vous ont été un peu rude dans votre présentation, car elle est liée à la question posée.
- Point de pris et +1 pour la réponse
Vous devez vous connecter pour publier un commentaire.
Donc, vous demandez ce que ce type de données ne permet pas, pourquoi n'est-il pas de valider, corriger? Par la MSDN, les attributs de Type de données sont utilisés principalement pour la mise en forme et pas de validation (que vous avez appris). Ce que cet attribut doit faire, c'est lors de l'utilisation de la
Html.DisplayFor()
helper, rendre le champ comme un lien hypertexte cliquable.Rend
En outre, comme l'a souligné Zhaph dans les commentaires ci-dessous, à utiliser dans le
Html.EditorFor()
va générer un HTML 5 de saisie de courrier électronique, qui ressemble à quelque chose comme ceci:De MSDN
EditorFor
aide génère un<input type="email" [...] />
HTML5 champ de saisie.DataType
seront les seuls à ne pas déclencher une validation côté serveur. Mais, depuis MVC 4 à l'aide deDataType.EmailAddress
fera le HTML à l'utilisation des intrantstype="email"
, qui à son tour rend jQuery Validation effectuer des Regex de validation sur le client..NET 4.5 introduit la
[EmailAddress]
d'un attribut, d'une sous-classe deDataTypeAttribute
. En utilisant[EmailAddress]
vous obtenez à la fois côté client et serveur de validation.vous pouvez utiliser votre Adresse de courrier électronique de données d'annotation ou de l'expression rationnelle pour résoudre ce problème. Type de Date est utilisé pour indiquer le helper html pour afficher le code html pour l'affichage.
Datatype.Emailaddress
dérive deDataTypeAttribute
et ajoute côté client e-mail de validation vous devez également définir<% Html.EnableClientValidation(); %>
dans votre vue correspondante.Vous pouvez également utiliser le DataAnnotations bibliothèque à l'aide de
EmailAddress
(Il exécute côté serveur de validation)C'est la regex pour valider l'adresse Email
Vous pouvez également créer des e-mail de validation de l'Attribut.
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx