Эквивалент ViewData["MenuItem.StoreMenuId"] с использованием ViewBag? ViewBag.MenuItem.StoreMenuId не работает
Можно ли конвертировать ViewData["MenuItem.StoreMenuId"]
в ViewBag? Я использую ViewBags для хранения IEnumerable<SelectListItem>
так что я могу связать с @Html.DropdownListFor
по моему мнению. Это прекрасно работает, если это простое свойство, которое не является вложенным (например, StoreMenuId):
ViewBag:
ViewBag.StoreMenuId = new SelectList(_db.StoreMenus.Where(m => m.Store.Id == model.StoreId), "Id", "Name");
DropDownListFor:
@Html.DropDownListFor(model => model.StoreMenuId, null, "", new { @class = "form-control" })
Но что, если свойство является вложенным (т. Е. MenuItem.StoreMenuId)? Это не работает:
ViewBag:
ViewBag.MenuItem.StoreMenuId = new SelectList(_db.StoreMenus.Where(m => m.Store.Id == model.StoreId), "Id", "Name");
DropDownListFor:
@Html.DropDownListFor(model => model.MenuItem.StoreMenuId, null, "", new { @class = "form-control" })
То, что заканчивается работой, меняется ViewBag.MenuItem.StoreMenuId
в ViewData["MenuItem.StoreMenuId"]
Это работает:
ViewData:
ViewData["MenuItem.StoreMenuId"] = new SelectList(_db.StoreMenus.Where(m => m.Store.Id == model.StoreId), "Id", "Name");
DropDownListFor:
@Html.DropDownListFor(model => model.MenuItem.StoreMenuId, null, "", new { @class = "form-control" })