您应该将另一个属性添加到视图模型中以存储/传递所选选项。
public class ListFormsCreator
{
public int SelectedFormId { set;get;}
public List<formscreator> Forms { get; set; }
}
现在,在 GET 操作中,您可以设置该值
var viewModel = new ListFormsCreator() { Forms = forms };
viewModel.SelectedFormId = 2 ; // This will select the option with 2 as FormsCreatorID
return View(viewModel);
并在视图中使用带有该属性的 lambda 表达式作为第一个参数DropDownListFor
辅助方法。
@model ListFormsCreator
@Html.DropDownListFor(m => m.SelectedFormId ,
new SelectList(Model.Forms, "FormsCreatorID", "FormName"),
"Select a Form", new { @class = "form-control" })
The DropDownListFor
辅助方法将使用的值SelectedFormId
属性并选择具有相同属性的选项value
该 SELECT 元素的选项列表中的属性值。
您还可以删除对的依赖formscreator
视图模型中的类,将其替换为列表SelectListItem
public class ListFormsCreator
{
public int SelectedFormId { set;get;}
public List<SelectListItem> Forms { get; set; }
}
现在在您的 GET 操作中,您可以使用Select
生成列表的方法SelectListItem
来自您的其他收藏。
var viewModel = new ListFormsCreator();
viewModel.Forms = someCollection.Select(a=>new SelectListItem {
Value=a.FormsCreatorId.ToString(),
Text=a.FormName})
.ToList();
viewModel.SelectedFormId = 2 ; // This will select the option with 2 as FormsCreatorID
return View(viewModel);
假设someCollection
是一个集合formscreator
物体
现在查看代码就简单多了
@Html.DropDownListFor(m => m.SelectedFormId, Model.Forms ,"Select a Form")