按下提交按钮后的MVC远程验证

时间:2014-02-10 14:02:52

标签: asp.net-mvc

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

型号:

[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")
}

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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