У меня есть веб-форма учетной записи веб-сайта ASP.NET MVC 4. Я пытаюсь проверить, существует ли в базе данных имя пользователя. Если имя пользователя существует, пользователь должен быть уведомлен. Для этого я использую удаленную проверку (следуя этому руководству).
Прежде всего, я изменил класс 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>
Когда я нажимаю кнопку "Зарегистрироваться", ничего не происходит: она не пересылает на домашнюю страницу и не показывает ошибку.
UPDATE: Я проверил эту форму в инструменте для создания хрома. Он дает 2 ошибки:
Uncaught ReferenceError: jQuery не определен jquery.validate.min.js: 46 (анонимная функция) Uncaught ReferenceError: jQuery не определен jquery.validate.unobtrusive.min.js: 5 (анонимная функция)
Как решить эту проблему?
удаленная проверка не видела и меня. Я обновил пакеты и работал
<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" />
У меня была такая же проблема, и я просто ее исправил. Если вы включили ссылку на файл jQuery, необходимый для загрузки следующих файлов, он должен работать!