회원 가입 폼을 만들때 사용자가 입력한 이메일이 형식에 맞는지 유효성 검사가 필요할때 아래와 같이 정규식을 이용하여 Attribute를 지정해주면 됩니다.


using System.ComponentModel.DataAnnotations; 
public class EmailAttribute : RegularExpressionAttribute
{
	public EmailAttribute()
		: base(@"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
	{
		this.ErrorMessage = "Please provide a valid email address";
	}
}


public class UserModel
{
    [Required]
    [Email]
    [Display(Name = "사용자 이메일")]
    public string UserEMail { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 4)]
    [Display(Name = "사용자 닉네임")]
    public string UserNickName { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "암호")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "암호 확인")]
    [Compare("Password", ErrorMessage = "암호와 확인 암호가 일치하지 않습니다.")]
    public string ConfirmPassword { get; set; }
}


<!--CSHTML-->
@using (Html.BeginForm(null, null, null, FormMethod.Post, new { @class = "form-signin" }))
{
    @Html.AntiForgeryToken()

    <h2 class="form-register-heading">회원 가입</h2>
        
    @Html.ValidationMessageFor(m => m.UserEMail)
    @Html.TextBoxFor(m => m.UserEMail, new { @class = "input-block-level", placeholder = "Email address" })
    @Html.ValidationMessageFor(m => m.UserNickName)
    @Html.TextBoxFor(m => m.UserNickName, new { @class = "input-block-level", placeholder = "Nick Name" })                
    @Html.ValidationMessageFor(m => m.Password)
    @Html.PasswordFor(m => m.Password, new { @class = "input-block-level", placeholder = "Password" })
    @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "input-block-level", placeholder = "ConfirmPassword" })
                
    <button class="btn btn-large btn-primary" type="submit">가입</button>
}


출처:http://www.stormconsultancy.co.uk/blog/development/code-snippets/creating-an-email-address-validation-attribute-using-dataannotations-for-asp-net-mvc/


유효성 검사 예


+ Recent posts