2015-10-05 2 views
7

Мой Index.cshtmlMVC модель пропуск для просмотра

@model ReportGenerator.WebUI.Models.ReportViewModel 
@Html.TextBoxFor(m => m.report.FileName, new { @class = "form-control", id = "FileName" }) 

Мой контроллер

public ActionResult Index(ReportViewModel model) 
{ 
    ...some stuff 
    model.report = new Report(); 
    model.report.FileName = "INDEX"; 
    return View(model); 
} 

public ActionResult fillFields(ReportViewModel _model) 
{ 
    ...some stuff 
    _model.report = new Report(); 
    _model.report.FileName = "FILL"; 
    return View("Index", _model); 
} 

Когда я запускаю мое приложение свойство TextBoxText установлено значение "INDEX". Также, когда я нажимаю кнопку, которая вызывает действие контроллера fillFields, TextBox все еще отображает «ИНДЕКС», он не меняется на «ЗАПОЛНИТЬ».

Что я делаю неправильно? Почему он не хочет работать?

+5

Ваш плохой поступок. Ваш метод 'fillFields()' имеет параметр 'ReportViewModel', поэтому его значения добавляются в' ModelState', когда метод инициализируется. Когда вы возвращаете представление, ваш метод TextBoxFor() 'использует значение из ModelState (а не свойство модели) для установки значения текстового поля. Причина этого объясняется [здесь] (http://stackoverflow.com/questions/26654862/textboxfor-displaying-initial-value-not-the-value-updated-from-code/26664111#26664111). Правильный подход - следовать шаблону PRG. –

+0

Спасибо! Я использовал ModelState.Clear(); и он работает – Icet

+2

Не используйте 'ModelState.Clear()'. Следуйте шаблону PRG и перенаправляйте! –

ответ

1

@ StephenMuecke ответил на это правильно в комментариях выше.

Ваш не делающий ничего плохого. Ваш метод fillFields() имеет параметр ReportViewModel, поэтому его значения добавляются в ModelState при инициализации метода. Когда вы возвращаете представление, ваш метод TextBoxFor() использует значение от ModelState (а не свойство модели), чтобы установить значение текстового поля. Причина этого объясняется here. Правильный подход состоит в том, чтобы следовать шаблону PRG -

Смежные вопросы