2013-02-19 94 views
0

JQuery的面对的问题,同时验证电子邮件地址

$(document).ready(function() { 
    var EmailContainer = $('#EmailContainer'); 
    var url = EmailContainer.attr('data-url'); 
    EmailContainer.load(url, function() { 
     var Emailform = $('#EmailForm'); 
     $.validator.unobtrusive.parse(Emailform); 
     Emailform.submit(function() { 
      debugger; 
      var Emailform = $(this); 
      if (Emailform.valid()) { 
       var SendEmailUrl = EmailContainer.attr('Json-Url'); 
       var UserModel = { From: $('#From').val(), To: $('#To').val(), 
         Subject: $('#Subject').val(), 
         Description: $('#Description').val() } 
       $.post(SendEmailUrl, UserModel, function (data) { 
        Emailform.html(data); 
        Emailform.removeData('validator'); 
        Emailform.removeData('unobtrusiveValidation'); 
        $.validator.unobtrusive.parse(Emailform); 
       }); 
      } 
      return false; 
     }); 
    }); 
}); 

型号

public class User 
    { 
     [Required(ErrorMessageResourceType = typeof(Resource1), 
       ErrorMessageResourceName = "From")] 
     [DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
       ErrorMessageResourceType = typeof(Resource1), 
       ErrorMessageResourceName = "InvalidEmail")] 
     [DisplayName("From Email Address")] 
     public String From { get; set; } 

     [Required(ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "To")] 
     [DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
        ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "InvalidEmail")] 
     [DisplayName("To Email Address")] 
     public String To { get; set; } 

     [Required(ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "Subject")] 
     [DisplayName("Subject")] 
     public String Subject { get; set; } 

     [Required(ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "Description")] 
     [DisplayName("Description")] 
     public String Description { get; set; } 
    } 

问题 - 不显示的电子邮件地址无效

回答

2

问题 - 不显示验证的电子邮件地址无效

我不能看到你的代码,你没有任何验证的任何地方。如果你想要做验证,然后用相应的模型上的财产属性验证:如果这是旨在为电子邮件

[Required(ErrorMessageResourceType = typeof(Resource1), 
     ErrorMessageResourceName = "From")] 
[DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
     ErrorMessageResourceType = typeof(Resource1), 
     ErrorMessageResourceName = "InvalidEmail")] 
[DisplayName("From Email Address")] 
[RegularExpression("GET A REGEX TO VALIDATE AN EMAIL FROM HERE: http://www.regular-expressions.info/email.html")] 
public string From { get; set; } 

显然同样代表了你的To性质为真:

[Required(ErrorMessageResourceType = typeof(Resource1), 
      ErrorMessageResourceName = "To")] 
[DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
      ErrorMessageResourceType = typeof(Resource1), 
      ErrorMessageResourceName = "InvalidEmail")] 
[DisplayName("To Email Address")] 
[RegularExpression("GET A REGEX TO VALIDATE AN EMAIL FROM HERE: http://www.regular-expressions.info/email.html")] 
public string To { get; set; } 

这么下去在这里得到一个电子邮件的正则表达式:http://www.regular-expressions.info/email.html

-1

System.ComponentModel.DataAnnotations.DataType.EmailAddress验证是不是验证电子邮件。它被用于ASP.Net MVC可以决定如何显示该字段的值。

您必须编写自己的电子邮件验证逻辑。 如果我们将System.ComponentModel.DataAnnotations.DataType.EmailAddress应用于任何属性,那么该字段将以超链接显示,而不是正常文本,其中会添加“mailTo”链接。通过写入自定义数据注释来添加自己的验证电子邮件地址的逻辑。

干杯

+0

你在谈论自定义属性吗? – SMC 2013-02-19 11:10:15

+0

是的,通过继承System.ComponentModel.DataAnnotations.ValidationAttribute类来编写属性,并将逻辑添加到IsValid()方法中。 – 2013-02-19 11:14:18

相关问题