2014-02-10 50 views
0

有关远程验证的快速问题。我使用Remote来检查电子邮件是否已被使用。与此问题是它立即检查电子邮件是否正在使用,我不想要。我希望在您单击提交按钮后显示错误消息,而不是在您从电子邮件文本框中选择标签后立即显示。这可能吗?按下提交按钮后MVC远程验证

型号:

[System.Web.Mvc.Remote("IsUserEmailAvailable", "Account", ErrorMessage = "Email alrdy in use.")] 

操作:

[AllowAnonymous] 
public JsonResult IsUserEmailAvailable(string Email) 
{ 
    return Json(!db.UserProfiles.Any(User => User.Email == Email), JsonRequestBehavior.AllowGet); 
} 

查看:

@model test.Models.RegisterModel 

<script src="~/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> 
<script src="~/Scripts/jquery.validate.min.js" type="text/javascript"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> 

@using (Html.BeginForm()) { 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary() 

    <fieldset> 
     <legend>Registration Form</legend> 
     <ol> 
      <li> 
       @Html.LabelFor(m => m.Email) 
       @Html.TextBoxFor(m => m.Email) 
      </li> 
     </ol> 
     <input type="submit" value="Registrera" /> 
    </fieldset> 
} 

@section Scripts { 
    @Scripts.Render("~/bundles/jqueryval") 
} 

谢谢!

回答

0

我解决它使用简单的ASPNET代码,

var userWithRequestedEmail = db.UserAccounts.FirstOrDefault(u => u.Email == SysUser.Email); 

if (userWithRequestedEmail != null) 
//Email alrdy registered