【问题标题】:Unable to set value in dropdownlist无法在下拉列表中设置值
【发布时间】:2019-08-09 10:11:00
【问题描述】:

我有一个下拉列表,在编辑时我需要设置当前值。但我的代码不起作用。

我的观点如下所示

 @Html.DropDownListFor(m => m.id, Model.ddls, "Please Select", new { @class = "form-control" })

型号

  public string id { get; set; }
  public List<SelectListItem> ddls { get; set; }

控制器

public IActionResult editmaster(string id, string sec)
    {
      master m = new master();//here is my model
      m.ddls = PopulateDDLDataSet(ds.Tables[1], "companyname", "companyid");//ddls is my object and populateddldataset is my methode to fill the list
      return View(m); 
    }

ddls 是我从控制器中填写的选定列表项,工作正常。但 id 中的值未在列表中设置

【问题讨论】:

  • 同时显示控制器动作代码和模型
  • 我更新了我的代码。请看看
  • 您能否查看页面的查看源代码并确保 m.id 与
  • 您不会将 m.Id 一起作为 m.ddls 返回

标签: asp.net-mvc asp.net-core model-view-controller


【解决方案1】:

检查了代码及其对我有用。您能否提供有关您的模型的更多详细信息? 想说你可以通过使用更清晰的内置剃须刀标签助手来制作类似的东西。

Documentation for select

在代码中使用标签助手的示例:

<select class="form-control" asp-for="@Model.id" asp-items="Model.ddls">
<option selected>Please select</option>
</select>

【讨论】:

    【解决方案2】:

    请按此操作,可能此代码对您有所帮助。

    型号代码

    public class testmdl
    {
          public string id { get; set; }
          public IEnumerable<SelectListItem> ddls { get; set; }
    }
    

    控制器代码

    //------ without using entity for select list items
        public IActionResult Test()
        {
                      testmdl obj=new testmdl();
                       IEnumerable<SelectListItem> companyList = new List<SelectListItem>
                        {
                            new SelectListItem { Value = "001", Text = "StackOverflow1" },
                            new SelectListItem { Value = "002", Text = "StackOverflow2" }
                        };
                      obj.ddls =companyList ;
                      return View(obj);
        }
    //--- using entity framework for select list items
        public IActionResult Test()
            {
                          testmdl obj=new testmdl();
                           List<SelectListItem> companyList = new SelectList(db.yourcompanytable, "companyid", "comapnyname").ToList();
                          obj.ddls =companyList ;
                          return View(obj);
            }
    

    查看代码

    <select id="id1" name="id1" asp-for="id" asp-items="@Model.ddls" class="form-control">
          <option value=@null>--- Select --- </option>
    </select>
    <span asp-validation-for="id" style="color:red;"></span>
    

    【讨论】:

      【解决方案3】:

      在我的情况下,上述答案都不起作用(我不清楚我出了什么问题),但最后我以另一种方式实现了。在我的代码下方。感谢所有支持。

              <script>
                  document.getElementById("id").value =@Model.id;
              </script>
      

      绑定下拉列表后放这个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        • 2015-12-21
        • 2011-09-02
        • 2017-08-07
        相关资源
        最近更新 更多