在控制器中为用户名是否存在写一个action方法
/// <summary>
/// 新增时判断用户名是否已有
/// </summary>
/// <param name="UName">传入参数必须和HTML控件生成的name一致,如由UName属性生成的控件,传入参数不能写成userName</param>
/// <returns></returns>
public ActionResult checkUName(string UName)
{
bool result = false;
//这里写检测逻辑
var list = db.TJUser.Where(u => u.UName.Equals(UName));
if (list == null || !list.Any())
{
result = true;//如果查询集合为空,则说明用户名不存在,可以新增
}
return Json(result, JsonRequestBehavior.AllowGet);
}
在Model中为对应的类字段设置Remote验证,需要使用System.Web.Mvc命名空间
[System.Web.Mvc.Remote("checkUName","userManager",ErrorMessage="用户名已存在")]
public string UName { get; set; }
在View中用Html.TextboxFor或Html.EditorFor生成input控件,用Html.ValidationMessageFor生成错误提示信息
@Html.TextBoxFor(model => model.UName, new {@class = "input-text lh25" })
@Html.ValidationMessageFor(model => model.UName)
还需要注意两个操作:
1、在View页面中引入Scripts文件夹下的两个验证脚本
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
2、在Web.Config文件中启用客户端验证,在appSettings中增加两个键值对
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
运行效果示例: