我想將強類型對象的列表傳遞給位於我的視圖上的下拉列表。如何將強類型對象列表從控制器傳遞到視圖上的下拉列表中?
平時要實現這一點,我在下面的示例中使用ViewBags,如:
public ActionResult ChooseLevel()
{
List<Levels> LevelList = GetAllLevels();
ViewBag.LevelList = LevelList
var model = new Levels();
return View(model);
}
而且我只想寫一個觀點,我會獲得上市我所有的級別有:
<div class="form-group">
@Html.LabelFor(model => model.LevelId, new { @class = "control-label col-md-3 col-sm-3" })
<div class="col-md-9 col-sm-9">
@Html.DropDownListFor(model => model.LevelId, new SelectList(ViewBag.LevelList, "LevelId", "LevelName"), "", new { @class = "form-control" })
</div>
</div>
但是現在我想知道是否可以簡單地傳遞我的Levels列表,並從下拉列表中選擇它們,而不是先將它們存儲到Viewbag中? 例如:
public ActionResult ChooseLevel()
{
List<Levels> LevelList = GetAllLevels();
return View(LevelList);
}
在一個視圖我會通過對視圖寫IEnumerable
接受多個項目:
@model IEnumerable<Levels>
之後,我可以以某種方式只能選擇一個項目,並張貼回服務器?
我該如何解決這個問題?
只是澄清:在視圖中使用'IEnumerable的'爲什麼如果你期望'DropDownList'中只有單個項目傳入viewmodel?即使你可以通過'Model.LevelList'像'@ Html.DropDownListFor(model => model.LevelId,new SelectList(Model.LevelList,「LevelId」,「LevelName」),「」,new {@class =「form-control」})'。 –
將下拉列表綁定到自己是沒有意義的(您的模型是'Level'和您爲'Level'生成的選項。您想在這裏實現什麼? –
@StephenMuecke我需要只有一個下拉列表的視圖(Level對象內部),並且該下拉應該允許我選擇其中一個級別 –