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; }
    }

問題-無効なメールアドレスの検証が表示されない

4

2 に答える 2

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

于 2013-02-19T11:21:53.773 に答える
-1

System.ComponentModel.DataAnnotations.DataType.EmailAddressメールを検証するためのものではありません。これは、ASP.NetMVCがフィールドの値を表示する方法を決定できるようにするために使用されます。

電子メールの検証のために独自のロジックを作成する必要があります。プロパティに適用System.ComponentModel.DataAnnotations.DataType.EmailAddressすると、そのフィールドはハイパーリンクで表示され、「mailTo」リンクが追加された通常のテキストとしては表示されません。カスタムデータ注釈を作成して、電子メールアドレスを検証するための独自のロジックを追加します。

乾杯

于 2013-02-19T11:08:29.933 に答える