C# 在MVC中将焦点移出文本框后,如何显示正则表达式验证消息?

C# 在MVC中将焦点移出文本框后,如何显示正则表达式验证消息?,c#,asp.net-mvc,C#,Asp.net Mvc,下面是我的代码,我在控制器的视图中有电子邮件文本框和电话号码文本框。 问题是当用户开始键入时,它会显示正则表达式验证消息,我想在用户键入完整的电子邮件或电话号码后显示此消息 感谢您的帮助 谢谢 这是查看中的代码 <div class="editor-label"> @Html.LabelFor(model => model.Seller_Email) </div> <div class="editor-f

下面是我的代码,我在控制器的视图中有电子邮件文本框和电话号码文本框。 问题是当用户开始键入时,它会显示正则表达式验证消息,我想在用户键入完整的电子邮件或电话号码后显示此消息

感谢您的帮助

谢谢

这是查看中的代码

<div class="editor-label">
            @Html.LabelFor(model => model.Seller_Email)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.Seller_Email, new { placeholder = "Email" })
            @Html.ValidationMessageFor(model => model.Seller_Email)
        </div>

1)使用
onblur()
函数并在jQuery中验证它


2) 删除模型验证。

我建议使用DataAnnotationExtensions。它作为一个NuGet软件包提供,这将验证电子邮件地址以及您可能发现有用的其他验证程序。使用此表达式而不是在键入时不会验证的正则表达式-


这不会停止当前进行的验证。但仍然没有意义。问题是:使用MVC,它与jQuery验证紧密相连,如何防止在键入时启动验证?您的答案是:删除验证并添加jQuery验证。这样的答案并没有真正的帮助。默认情况下,只有当您在控制范围外进行制表操作时,才会显示错误消息(如果您在控制范围内进行制表操作,则会在每个笔划上显示错误消息),因此会发生其他情况。但是为什么不使用
[EmailAddress]
属性进行验证,因为验证使用的正则表达式要比您的好得多?我能想到的唯一一件事是,如果您在GET方法中添加
ModelState
(例如,您的GET方法有一个作为模型的参数)。或者您有一个脚本覆盖了
验证器的默认值。在这种情况下,当用户开始键入时,它会显示错误,而我也在其他字段上使用正则表达式验证,同样的情况也会发生。您的代码中没有其他错误(请参阅我最后的评论)
[Required(ErrorMessage = "Email is required")]
    [Display(Name = "Email")]
    [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
                  @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
                  @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$",
                  ErrorMessage = "Email is not valid")]
    [Remote("EmailExists", "Account", HttpMethod = "POST", ErrorMessage = "Email already exists. Please enter a different Email")]
    public string Seller_Email { get; set; }