首页 > 解决方案 > 为什么远程验证在 MVC 上不起作用?

问题描述

我在我的项目中进行了远程验证,以避免数据库中的重复条目。我的元数据是这样的:

[Remote("CheckUserName", "Home", ErrorMessage = "This is a duplicate program ")]
public string UserName { get; set; }

在我的 HomeController 我有这样的功能

public JsonResult CheckUserName(string UserName)
{
    if (!RUser.DupUserName(UserName))
    {
        return Json(true, JsonRequestBehavior.AllowGet);
    }
    else
    {
        return Json(false, JsonRequestBehavior.AllowGet);
    }
}

在我的创建视图中

<td>@Html.EditorFor(model => model.UserName)</td>
<td>@Html.ValidationMessageFor(model => model.UserName)</td>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

在存储库中

public bool DupUserName(string UserName)
{
    int q = (from a in db.Tbl_User
        where a.UserName.Equals(UserName)
        select a).Count();
    return Convert.ToBoolean(q);
}

在我看来一切都很好,但这种验证不起作用。谁能指出我在这里做错了什么?我也尝试过使用 RemoteAttribute 的重载,但它不起作用。

标签: c#asp.net-mvcunobtrusive-validation

解决方案


推荐阅读