0

I want to force users to register with their e-mail addresses DataType.EmailAddress doesn't work.

public class RegisterModel
{
    [Required]
    [Display(Name = "E-mail")]
    [DataType(DataType.EmailAddress)]
    public string UserName { get; set; }
    ...
}

Any help is appreciated.

Tassisto
  • 9,877
  • 28
  • 100
  • 157

2 Answers2

2

If your wanting validation for an email address, you need the [EmailAddress] attribute (NET 4.5)

[Required]
[Display(Name = "E-mail")]
[EmailAddress] // Add this
public string UserName { get; set; }

or for NET 4.0 you can use a [RegularExpression] attribute (this one is taken from jquery-validate 1.9.0)

[Required]
[Display(Name = "E-mail")]
[RegularExpression(@"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$", ErrorMessage="Please enter a valid email adress")]
public string UserName { get; set; }

Note the [DataType] attributes are used by @Html.EditorFor() to render the type attribute used by browsers (e.g type="email")

0

You can use the "EmailAddress" annotation:

[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string UserName { get; set; }

EDIT:

For MVC 4 and below, you can use regex expression to do validation on Email address fields. See more here:

http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/

MichaelCleverly
  • 2,473
  • 1
  • 24
  • 33