我想将强类型对象的列表传递给位于我的视图上的下拉列表。如何将强类型对象列表从控制器传递到视图上的下拉列表中?
平时要实现这一点,我在下面的示例中使用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对象内部),并且该下拉应该允许我选择其中一个级别 –