我有默认的ASP.NET MVC 4帐户注册Web表单。我正在尝试检查数据库中是否已存在用户名。如果存在用户名,则应通知用户。 为此,我正在使用远程验证(this tutorial之后)。
首先我更改了RegisterModel类:
[Required]
[Display(Name = "User name")]
[System.Web.Mvc.Remote("doesUserNameExist", "Account", HttpMethod = "POST", ErrorMessage = "User name already exists. Please enter a different user name.")]
public string UserName { get; set; }
然后我将它放入AccountController:
[HttpPost]
public JsonResult doesUserNameExist(string UserName)
{
var user = Membership.GetUser(UserName);
return Json(user == null);
}
在Register视图中,我添加了以下两行:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
当我点击&#34;注册&#34;没有发生任何事情:它没有转发到主页而没有显示错误。
更新:我已在Chrome开发者工具中检查过此表单。它给出了2个错误:
未捕获的ReferenceError:未定义jQuery jquery.validate.min.js:46(匿名函数)未捕获 ReferenceError:未定义jQuery jquery.validate.unobtrusive.min.js:5(匿名函数)
如何解决这个问题?
答案 0 :(得分:0)
我遇到了同样的问题,并修复了它。如果在加载以下文件之前包含指向jQuery文件的链接,它应该可以工作!
答案 1 :(得分:0)
远程验证也不适合我。我更新了包并工作
<package id="jQuery" version="3.1.1" targetFramework="net45" />
<package id="jQuery.Validation" version="1.16.0" targetFramework="net45" />
<package id="Microsoft.jQuery.Unobtrusive.Ajax" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net45" />