10

我正在尝试使用选定的值创建一个下拉列表,但它不起作用:/ 我在网上搜索,但找不到解决方案:/

目前,我正在这样做:

在 C# 中:

ViewBag.ID_VEH = new SelectList(db.VEHI, "ID_VEH", "COD_VEH", 4); // 4 is an example

在我的 cshtml 中:

@Html.DropDownListFor(model => model.ID_VEH, ViewBag.ID_VEH as SelectList)

下拉列表很完整,但未选择默认值:/您有什么想法吗?

4

3 回答 3

12

我喜欢做的是将要在下拉列表中显示的项目列表添加到我的模型中,因此我不必通过视图袋传递该列表。我也喜欢在我的模型中添加一个包含 SelectedValue 的字段,我填写控制器

然后你可以做

@Html.DropDownListFor(model => model.ID_VEH, new SelectList(Model.listVEH, "ID_VEH", "COD_VEH", Model.SelectedVEH_ID), "--Select VEH--")
于 2013-07-23T09:13:15.613 回答
9

只需将 model.ID_VEH 的初始值设置为 4:

在控制器中:

model.ID_VEH = 4;
于 2013-07-23T09:06:07.517 回答
1

以防万一有人在寻找答案时遇到类似问题:

我想通过下拉框查看我在控制器中给出(硬编码)的项目:

控制器:

SGLDataRegistration.Models.DataRegistrationModel mdl = rwd.GetData(DateTime.Now.Year, currentWeek, DateTime.Now, 139, 1);

看法:

                    <div id="tempCustomerselect">
                        @Html.LabelFor(m => m.CustomerName)
                        @Html.DropDownListFor(m => m.PitchID, new SelectList((new SGLDataRegistration.Models.CustomerModel().GetRoles()).OrderBy(x => x.CustomerName), "PitchID", "CustomerName"), new {id = "ddlCustomer", @class="jsddlCustomer"})

                    </div>

在这个 GetData 中,我设置了硬编码的所需值:

公共 SGLDataRegistration.Models.DataRegistrationModel GetData(int year, int weekNumber, DateTime datum, int pitchID, int parameter) { try { DataRegistrationParameters drp = GetParameter(parameter);

        //vul een instantie van het dataregistrationmodel
        SGLDataRegistration.Models.DataRegistrationModel drm = new Models.DataRegistrationModel();
         drm.WeekNumber = weekNumber;
         drm.BeginDay = datum;
         drm.Parameter = parameter;
         drm.Year = year;
         drm.PitchID = pitchID;
于 2014-01-03T12:48:22.590 回答