【问题标题】:Select a default value in dropdownlistfor MVC 4在 MVC 4 的下拉列表中选择默认值
【发布时间】:2013-07-23 08:37:28
【问题描述】:

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

目前,我正在这样做:

在 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)

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

【问题讨论】:

    标签: asp.net-mvc-4 razor html.dropdownlistfor viewbag


    【解决方案1】:

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

    那你就可以了

    @Html.DropDownListFor(model => model.ID_VEH, new SelectList(Model.listVEH, "ID_VEH", "COD_VEH", Model.SelectedVEH_ID), "--Select VEH--")
    

    【讨论】:

      【解决方案2】:

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

      在控制器中:

      model.ID_VEH = 4;
      

      【讨论】:

      • 这绝对是最好的方法,也可能是最简单的
      【解决方案3】:

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

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

      控制器:

      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 中,我设置了硬编码的所需值:

      public SGLDataRegistration.Models.DataRegistrationModel GetData(int year, int weekNumber, DateTime datum, int pitchID, int parameter) { 尝试 { DataRegistrationParameters drp = GetParameter(参数);

              //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;
      

      【讨论】:

        猜你喜欢
        • 2013-05-15
        • 2018-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        相关资源
        最近更新 更多