У меня есть следующий простой (для целей вопроса) контроллер / действие:
public ActionResult Edit(int id)
{
User user = repository.GetUser(id);
return View(user);
}
[HttpPost]
public ActionResult Edit(User user)
{
user.Name = user.Name.ToUpper();
return View(user);
}
, и представление было сгенерировано как редактирование для пользователя с использованием регулярных шагов в VS
.Проблема, с которой я сталкиваюсь, заключается в том, что все, что было введено в текстовое поле «Имя», будет отображаться пользователю, но без заглавных букв.Я проверил, и действие Edit для POST выполняется, и значение user.Name становится UPPER CASE, но .TextBoxFor по-прежнему использует значение, введенное пользователем, которое находится в нижнем регистре.
Я также проверил, что если янапечатайте (без использования любого Html Helper) значение Model.Name после POST, оно будет в верхнем регистре, как я хотел бы, чтобы Html.TextBoxFor вел себя.
Это ошибка MVC?
Есть ли способ заставить эту работу работать так, как я хочу, это означает, что действие / контроллер - это часть головоломки, которая решает значения данных для представления, а не представления, используя значения в объекте запросаи игнорируя изменения, которые мог сделать контроллер?
Заранее спасибо