远程验证无法正常工作

时间:2014-04-15 15:36:49

标签: jquery asp.net asp.net-mvc validation remote-validation

我有默认的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(匿名函数)

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

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

  • jquery.validate.min.js
  • jquery.validate.unobtrusive.min.js

答案 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" />