Сбой проверки ASP.NET MVC 3 на стороне сервера с выпадающими списками в ViewModel - PullRequest
2 голосов
/ 06 января 2012

У меня есть представление, которое строго типизировано для модели представления, которая содержит свойства для данных, отправленных через форму на странице, а также коллекции, используемые для заполнения моих раскрывающихся списков.

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

Нужно ли повторно гидратироватьраскрывающиеся коллекции модели представления перед возвратом представления формы снова?

Метод контроллера:

[HttpPost]
    public ActionResult Create(UserProfileCreateViewModel viewModel)
    {
        if (ModelState.IsValid)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        return View();
    }

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Да, вы должны. Http - это протокол без сохранения состояния, а ASP.NET MVC не имеет понятия обратной передачи или состояния просмотра.

Вам следует воссоздать нужные объекты и отправить их обратно, если для ModelState.IsValid установлено значение false.

1 голос
/ 06 января 2012

Да, вам нужно регидрировать.Единственное, что связано с вашей моделью - это то, что представлено в форме сообщения.Таким образом, вы можете получить значение выбранного элемента из раскрывающегося списка, но не весь раскрывающийся список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...