Изменить свойство модели в почтовом запросе asp.net mvc - программирование
Подтвердить что ты не робот

Изменить свойство модели в почтовом запросе asp.net mvc

У меня есть одна проблема.

Это короткий пример. Это модель.

    public class MyModel
    {
         string Title{get;set;}
    }

В виду, я пишу

@Html.TextBoxFor(model => model.Title)

Это контроллер.

    public ActionResult EditNews(int id)
    {
        var model = new MyModel;
        MyModel.Title = "SomeTitle"

        return View("News/Edit", model);
    }
    //for post
    [HttpPost]
    public ActionResult EditNews(MyModel model)
    {
        //There is  problem.When I do postback and
        // change Title in this place,Title  doesn't change in view textbox
        //Only when I reload page it change.
        model.Title = "NEWTITLE"

        return View("News/Edit", model);
    }
4b9b3361

Ответ 1

Он не изменится, потому что по умолчанию (многие считают, что это ошибка). MVC будет игнорировать изменения, которые вы делаете для модели в HttpPost, когда вы возвращаете тот же вид. Вместо этого он выглядит в ModelState для значения, которое изначально было передано в представление.

Чтобы предотвратить это, вам нужно очистить ModelState, который вы можете сделать в верхней части своего HttpPost, выполнив:

ModelState.Clear();