Модель :
public class RegisterViewModel
{
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
public string Password { get; set; }
[DataType(DataType.Password)]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
Контроллер :
[AllowAnonymous]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (!ModelState.IsValid)
{
var modelErrors = new List<string>();
foreach (var modelState in ModelState.Values)
{
foreach (var modelError in modelState.Errors)
{
modelErrors.Add(modelError.ErrorMessage);
}
}
return Json(new { success = false, responseText = modelErrors[0] });
}
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
return RedirectToAction("Index", "Home");
}
AddErrors(result);
}
// If we got this far, something failed, redisplay form
return View(ModelState);
}
Вид:
<div id="divError" class="alert alert-danger collapse">
<a id="linkClose" class="close" hred="#">×</a>
<div id="divErrorText"></div>
</div>
javaScript:
$('#btnRegister1').click(function () {
$.ajax({
url: '/Account/Register',
method: 'POST',
data: {
Email: $('#txtEmail').val(),
Password: $('#txtPassword').val(),
ConfirmPassword: $('#txtConfirmPassword').val(),
__RequestVerificationToken: token,
},
success: function () {
$('#successModal').modal('show');
},
error: function (jqXHR) {
$('#divErrorText').text(jqXHR.responseText);
$('#divError').show('fade');
}
});
});
Этот код используется для отображения MVC ошибок проверки с использованием AJAX. Код работает, как и ожидалось, для функции AJAX success
, но ему не удается получить доступ к коду функции AJAX error
и его довольно работающей функции success
, даже если есть ошибки проверки и должен выполняться код функции AJAX error
.
Может кто-нибудь, пожалуйста, руководство. Заранее спасибо.