вспомогательный тег ввода для ASP.NET Core не меняет текст в поле связанной модели - PullRequest
0 голосов
/ 09 декабря 2018

Я использую помощник тега input для моего представления Razor следующим образом:

<input type="text" asp-for="MsgFromFilter" id="txtMsgFromFilter" />

Так что это должно быть привязано к строковому полю MsgFromFilter моей модели.Хотя, когда я отправляю форму, это поле в моей модели привязывается к значению в текстовом поле, оно не работает наоборот: когда я устанавливаю значение этого поля в моем контроллере, представление не устанавливаетсяэто как значение по умолчанию для элемента ввода текста;он просто сохраняет последнее значение, указанное в этом поле input.Как я могу получить для текста input значение по умолчанию при загрузке страницы, равное значению в модели, а не последнему значению, которое было отправлено в input?

1 Ответ

0 голосов
/ 09 декабря 2018

Благодаря @KirkLarkin я обнаружил, что для установки значений по умолчанию для полей input, отображаемых в представлении Razor, мне нужно установить ModelState.Поэтому в моем контроллере мне нужно сделать две вещи, установить ModelState и саму модель:

if (btnReset) {
    ModelState.Remove(nameof(model.MsgFromFilter));
    model.MsgFromFilter = null;
}

Это работает для сброса значения этого поля модели, а также элемента ввода Razor view на пустое.

...