0

我有默认的 ASP.NET MVC 4 帐户注册 Web 表单。我正在尝试检查用户名是否已存在于数据库中。如果用户名存在,则应通知用户。为此,我正在使用远程验证(遵循本教程)。

首先,我更改了 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);
        }

在注册视图中,我添加了以下两行:

<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>

当我点击“注册”按钮时,什么也没有发生:它没有转发到主页,也没有显示错误。

更新:我已经在 chrome 开发者工具中检查了这个表格。它给出了2个错误:

Uncaught ReferenceError: jQuery is not defined jquery.validate.min.js:46 (anonymous function) Uncaught ReferenceError: jQuery is not defined jquery.validate.unobtrusive.min.js:5 (anonymous function)

如何解决这个问题呢?

4

2 回答 2

0

我有同样的问题,只是修复了它。如果在加载以下文件之前包含指向所需 jQuery 文件的链接,它应该可以工作!

  • jquery.validate.min.js
  • jquery.validate.unobtrusive.min.js
于 2014-05-20T21:43:28.397 回答
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" />
于 2017-05-19T09:06:29.170 回答