Сильно типизированные просмотры - публикуйте дополнительные данные через форму редактирования / создания - PullRequest
3 голосов
/ 09 сентября 2010

У меня есть простой (надеюсь) сценарий.

  • Стол мест
  • Стол компьютеров
  • Стол SeatComputers (поскольку на место может быть назначено несколько компьютеров)

У меня сильнонабрал «Правка» для просмотра «Места».Мне удалось получить список множественного выбора на этой странице, чтобы назначать или отменять назначение компьютеров (jquery для добавления / удаления элементов).

Однако, когда я отправляю форму, содержимое списка выбора не публикуется в действии контроллера.

Я предполагаю, что это связано с тем, что список выбора компьютеров не является свойством модели.

Есть ли в любом случае POST дополнительные данные для контроллера вне свойств модели?

Мои таблицы выглядят примерно так: alt text

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010

Вам не нужно публиковать этот список, поскольку он уже хранится в базе данных, и у вас даже есть хранилище для его извлечения, не так ли? Поэтому единственное, что нужно опубликовать, - это выбор пользователя, так как это единственное, чего вы не знаете. В действии POST реконструируйте список в модели представления с помощью репозитория, так же, как вы делали это в действии GET, которое отображало форму.

Есть ли в любом случае, чтобы отправить дополнительные данные на контроллер за пределами Свойства модели?

Конечно, просто включите их в качестве полей ввода, чтобы их значения отправлялись по POST и в действие вашего контроллера:

[HttpPost]
public ActionResult Index(SomeViewModel model, string param1, string, param2)
{
    ...
}

Но я настаиваю еще раз: вам это не нужно в вашем случае.

0 голосов
/ 09 сентября 2010

Я обычно создаю ViewModels, которые объединяют любые свойства из моделей Entity, которые нужны представлению, а затем указываем на это для Visual Studio для генерации начального представления.

поэтому вместо System.Web.Mvc.ViewPage<Seats> это будет System.Web.Mvc.ViewPage<SeatEditorViewModel>

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

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