Чтобы достичь этой цели в данном сценарии, нам нужно сделать две настройки.
на стороне клиента
Чтобы отключить проверку на стороне клиента, нам нужно отключить ее
@Html.EditorFor(model => model.Password, new { htmlAttributes = new { @data_val = "false" , @class = "form-control"} })
Обратите внимание на @ data_val = «false».В этом поле будет отключена проверка.
Сторона сервера (в действии)
Когда модель проверяется в действии публикации, ModelState.IsValid всегда возвращает falseпотому что пароль не предоставлен.Здесь мы должны предоставить текущий пароль для модели и повторно подтвердить модель.
var userObj = db.Users_Info.Where(a => a.Id == users_Info.Id).FirstOrDefault();
if (String.IsNullOrEmpty(users_Info.Password))
{
users_Info.Password = userObj.Password;
}
ModelState.Clear();
TryValidateModel(users_Info);
Позвольте мне объяснить, сначала мы получаем текущую информацию, сохраненную в базе данных, которую мы используем позже, чтобы присвоить текущей моделиесли пароль не указан.Последние две строки фактически сбрасывают ModelState для возврата обновленного результата в ModelState.IsValid.