Я создал форму, где пользователь может обновить свою учетную запись данных.В этой форме пользователь также может изменить пароль учетной записи, перед этим я спрашиваю у него текущий пароль, это поле:
<div class="form-group">
<label>Current Password</label>
<input class="form-control" id="oldPassword"
asp-for="@Model.ExistingPassword" type="password" />
<div class="invalid-feedback"></div>
</div>
, поскольку вы видите, что ввод oldPassword
ограничиваетсвойство ExistingPassword
, которое является частью ViewModel
этого View
и имеет следующее объявление:
[Required, MinLength(6), MaxLength(50), DataType(DataType.Password)]
public string ExistingPassword { get; set; }
при отправке формы я вызываю следующую ajax
функцию:
$.post(url, user, function (response) {
//Some stuff
}).done(function (response) {
alert("Updated executed");
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("Error happened!");
});
параметр функции принимается формой, в частности:
- url:
$(this).attr('action');
- user:
$(this).serialize();
действие формы вызовет следующий контроллер: User\UpdateUser
.Внутри метода UpdateUser
я выполняю следующую проверку:
public async Task<UserProfileViewModel> UpdateUserAsync(UserProfileViewModel updatedUser)
{
if (!await _userManager.CheckPasswordAsync(originalUser, updatedUser.ExistingPassword))
throw new Exception("Invalid password");
по существу, проверка условия, если текущий пароль правильный, если нет, то будет сгенерировано исключение.
Теперь,у меня такой вопрос: как я могу узнать, какой тип исключения сгенерировал метод?
Мне нужно знать, какой тип исключения сгенерировал метод UpdateUser
, потому что в методе есть разные исключения.
Предположим, возникли исключения Invalid Password
, мне нужно отобразить сообщение внутри invalid-feedback
div, рядом с oldPassword
, чтобы пользователь знал, почему обновление не удалось.
Спасибозаранее за любую помощь.