我将如何翻译这段代码,该代码基于生成纯HTML的ViewBag foreach。到基于模型的Html.DropDownList?
我的HTML现在看起来像这样
<select id="drpProject" name="drpProject">
<option value="Blank" selected="selected">-- Select Project --</option>
@foreach (SolutionName.ViewModel.project project in ViewBag.lstProject)
{
<option value="@project.id">@project.projectName</option>
}
</select>
但我想使用@ Html.DropDownList或@ Html.DropDownListFor,因为我使用@ Html.TextBoxFor作为我的文本框而不是我的下拉列表
就像我想要的那样
@Html.DropDownListFor(x => x.projectID)
有问题的模型是@ Model.projectID,它是一个整数 但我想显示projectName,而值是projectID。 如果可以使用@ Html.DropDownList,我还希望在开始时有一个空白选项作为默认选项?
这是控制器代码
List<project> lstProject = projectModel.getSetProjectCache(); //Get from SQL function
ViewBag.lstProject = lstProject;
答案 0 :(得分:1)
在控制器中创建如下所示的视图包
ViewBag.lstProject = new SelectList(lstProject,"projectID","projectName");
现在在视图中使用下面的内容,您将获得预期的下拉列表
@Html.DropDownListFor(x => x.projectID,ViewBag.lstProject as SelectList,"")