Я бы не использовал одну ViewModel для всех данных. Я бы использовал ViewModel только для данных, которые могут быть фактически отправлены обратно на сервер. Для всех остальных данных, таких как списки, я бы поставил их на ViewBag
. Как:
public ViewResult SomeAction()
{
var model = GetYourModelData();
ViewBag.TList = GetTList();
ViewBag.GList = GetGList();
ViewBag.SList = SList();
return View(model);
}
Вы можете поместить все списки в отдельный вспомогательный объект, если вы часто их используете.
Обратите внимание, что это не «ответ на этот вопрос - это то, как вы должны это делать», это скорее описание того, что работает для меня. Но, на мой взгляд, модель представления - это одно, а фактические данные, такие как данные в раскрывающихся списках и т. Д., - это другое дело, и их следует поместить в свойство ViewData
, но ViewBag
- это просто динамическая оболочка вокруг свойства ViewData
. Затем вы можете использовать свойства ViewBag
в качестве входных данных для ваших частичных представлений, которые должны составлять каждый из ваших разделов.