Как вы можете очистить привязанное свойство в модели Razor Page при размещении? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть свойство, которое связано с полем ввода:

<input id="name" asp-for="ContactName" name="ContactName" placeholder="Name" type="text" style="width: 200px !important;" autofocus>

[BindProperty]
public string ContactName { get; set; }

Когда я выполнял POST, я попытался очистить свойство ContactName, установив для него значение NULL или string.Empty, но оно не работает.

Как правильно очистить это поле?

1 Ответ

0 голосов
/ 28 августа 2018

«Правильный» способ - следовать шаблону PRG (Post-Redirect-Get). Значения ваших входных данных берутся из ModelState, а не Model. ModelState сам по себе состоит из значений моделей Request, ViewData / ViewBag и наконец . Другими словами, если существует значение для связанного члена в чем-то вроде Request, это значение будет иметь приоритет над всем, что вы устанавливаете в своей модели.

Шаблон PRG указывает, что вы должны возвращать представление обратно пользователю только при наличии ошибки проверки. В таких случаях вы хотите, чтобы отображались опубликованные данные, а не данные в модели, чтобы пользователь мог исправить любые ошибки. Если введенные пользователем данные верны, вы перенаправляете, даже если они возвращаются на ту же страницу. Акт перенаправления очищает все от почты. Вы как будто впервые заходите на страницу, потому что на самом деле это совершенно новый запрос GET.

...