Просмотр не обновляется после публикации

У меня есть метод контроллера CreateOrUpdate, этот метод должен сохранить машину в базе данных, а затем вернуть как обычно.

public ActionResult CreateOrUpdate(int ID = 0)
{
    Car car = new Car(ID);
} 

[HttpPost]
public ActionResult CreateOrUpdate(Car car)
{
       car.Save();
       return View(car);
}

В методе Car.Save() я устанавливаю идентификатор автомобиля, каким бы ни был идентификатор в базе данных после сохранения автомобиля (при выполнении вставки я использую SCOPE_IDENTITY(), метод сохранения работает хорошо, и если я отлаживаю и наблюдаю за значениями car после вызова Save (), идентификатор правильный, но когда отображается представление, в представлении отображается 0.

Может кто-нибудь, пожалуйста, помогите мне, и скажите мне, почему это произойдет. Разве я не предполагаю изменить модель для представления в методе HTTP POST? Должен ли я скорее перенаправить на оригинальный метод CreateOrUpdate(), если сохранение было успешным.

3 ответа

Решение

Это должна быть проблема ModelState. если вы используете Htmlhelper для отображения значения идентификатора. По умолчанию HtmlHelper отображает значение ModelState, а не Model. Попробуйте отобразить значение модели в поле зрения

<td>
    @Model.id
</td>

или очистить значение ModelState в контроллере

ModelState.Clear();

или сбросить значение идентификатора после SaveChange.

theCar.Save();
ModelState["id"].Value = theCar.id
return View(theCar);

Сбросить значение textarea после отправки формы

Я не хотел очищать ModelState, потому что мне нужно было отображать ошибки, поэтому я пошел с

ValueProviderResult vpr = new ValueProviderResult("", null, System.Globalization.CultureInfo.CurrentCulture);

ModelState["id"].Value = vpr;
Другие вопросы по тегам