Сравните пароль и подтвердите пароль в ASP.Net MVC
Можно ли сравнить текст текстового поля с подтверждением пароля с помощью
@Html.PasswordFor(model=>model.Password)
?
@using (Html.BeginForm())
{
<table>
<tr>
<td>@Html.LabelFor(model => model.Password)</td>
<td>@Html.PasswordFor(model => model.Password)</td>
<td>@Html.ValidationMessageFor(model => model.Password)</td>
</tr>
@*Here I want to take "Confirm Password" and want to compare it with "Password" in View(.cshtml only) as
I have not taken ConfirmPassword in my model.*@
<tr>
<td>
<input type="submit" value="Create" />
</td>
</tr>
</table>
}
Пожалуйста, предложите любой способ или решение,
Как compare password
и confirm password
без получения подтверждения пароля в модели. Спасибо....
Ответы
Ответ 1
Используя Compare
DataAnnotation
, будет легко сравнить пароль, но если модель genrate из базы данных использует NotMapped
, NotMapped Properties в структуре Entity Framework, используя Стратегия Code-First
[Required]
public string Password { get; set; }
[NotMapped] // Does not effect with your database
[Compare("Password")]
public string ConfirmPassword { get; set; }
Ответ 2
измените свою модель, чтобы включить переменную пароля подтверждения
[Required]
public string Password { get; set; }
[Compare("Password")]
public string ConfirmPassword { get; set; }
Ответ 3
Просто добавьте [NotMapped]
в начало вашего свойства подтверждения пароля в модели данных
[NotMapped]
[Required(ErrorMessage = "Confirm Password required")]
[CompareAttribute("NewPassword", ErrorMessage = "Password doesn't match.")]
public string ConfirmPassowrd { get; set; }
Таким образом, он не будет проверять свойство ConfirmPassword
в вашей таблице DB
Ответ 4
Просто попробовал [Compare("field_to_compare")]
, и он также работает в MVC 5.
Ответ 5
Попробуйте написать javascript
для сравнения пароля...
Но DataAnnotation
является предпочтительным
Ответ 6
Как я могу заставить этот форум работать? https://m.facebook.com/recover/code/?em%5B0%5D=flav2626%40gmail.com&rm=send_email & hash = AUaaQ5oFcEYM_gnu & _rdr//recovery/code/789675/откройте страницу Facebook. Пожалуйста, помогите, не можете получить новый пароль, что бы я ни делал
Ответ 7
Можно сравнить значение текстового поля "Пароль" со значением текстового поля "Подтверждение пароля" как на стороне клиента, так и на стороне сервера. Решения, предоставленные другими, для подтверждения на стороне сервера. Если вы не хотите включать "Подтверждение пароля" в вашу модель, то вам нужно сравнить клиентскую часть. Это можно сделать через Javascript. Либо вы можете вручную написать код для сравнения, либо вы можете включить следующий скрипт в ваш файл .cshtml. (Предполагается, что вы используете Visual Studio для написания кода).
<script src="/Scripts/jquery-3.3.1.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
Затем вы должны создать поле, как показано ниже:
<input data-val="true" data-val-equalto="Password and Confirmation Password must match." data-val-equalto-other="*.Password" data-val-required="Required." id="ConfirmPassword" name ="ConfirmPassword" type="password" />
<span class="field-validation-valid error" data-valmsg-for="ConfirmPassword" data-valmsg-replace="true"></span>
Это позволит сравнить текстовое поле "Пароль" с текстовым полем "Подтверждение пароля", а также отобразит сообщение об ошибке, если значения в обоих текстовых полях не совпадают, без необходимости писать дополнительный код.
Хотя хорошей практикой является проверка как на стороне клиента, так и на стороне сервера.