以下是我的代码呈现为HTML
的样子<input data-val="true" data-val-remote="User name already exists. Please enter a different user name." data-val-remote-additionalfields="*.Name" data-val-remote-url="/OrchardLocal/Genealex.CRM.Core/Home/doesNameExist" data-val-required="Enter Name" id="typeName" name="TypeType.Name" type="text" value="">
这是我模型中的属性
[Remote("doesNameExist", "Home", ErrorMessage = "User name already exists. Please enter a different user name.")]
public string Name { get; set; }
我的控制器中的操作:
[HttpPost]
public JsonResult doesNameExist(string Name)
{
var user = _contactBll.DoesTypeExist(Name);
if (user)
{
return Json("Username is already exist", JsonRequestBehavior.AllowGet);
}
return Json(true, JsonRequestBehavior.AllowGet);
}
在我看来,我有:
@Html.TextBoxFor(model => model.TypeType.Name, new { id = "typeName" })
我还包括这样的脚本:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js" type="text/javascript"></script>
<script src="https://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>
然而,当我从文本框中离开焦点时,在输入字段中写了一些内容后,验证不会被触发。
我做错了什么?
答案 0 :(得分:1)
我的错误如下:
[HttpPost]
public JsonResult doesNameExist(string Name)
{
var user = _contactBll.DoesTypeExist(Name);
if (user)
{
return Json("Username is already exist", JsonRequestBehavior.AllowGet);
}
return Json(true, JsonRequestBehavior.AllowGet);
}
而不是[HttpPost],我在控制器上需要[HttpGet]。切换它并且工作正常。