如何将此HTML / ViewBag下拉列表翻译为Html.DropDownList

时间:2014-04-08 09:24:22

标签: c# .net razor html.dropdownlistfor viewbag

我将如何翻译这段代码,该代码基于生成纯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;

1 个答案:

答案 0 :(得分:1)

在控制器中创建如下所示的视图包

ViewBag.lstProject = new SelectList(lstProject,"projectID","projectName");

现在在视图中使用下面的内容,您将获得预期的下拉列表

@Html.DropDownListFor(x => x.projectID,ViewBag.lstProject as SelectList,"")