从控制器MVC更新DropDownListFor数据源

时间:2016-11-15 08:12:54

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

我有一个从控制器获取数据源的DropDownListFor。有没有办法更新它,因为我添加了我想要在同一页面上显示的新值。

查看:

@Html.DropDownListFor(m => m.Id, MyController.GetIds(Model.Id).Select(g => new SelectListItem { Text = g.Text, Value = g.Value }), @Resource.System_Choose, new
                   {
                       @class = "form-control selectpicker",
                       data_live_search = "true"
                   })

控制器:

public static List<SelectListItem> GetIds(int Id)
    {
        var retVal = new List<SelectListItem>();

        return retVal;
    }

2 个答案:

答案 0 :(得分:0)

让View处理具有List<SelectListItem>()类型属性的Model,并返回此属性,以便绑定并显示在DropDown中。

答案 1 :(得分:0)

有一些方法可以实现目标,

  1. 仅使用javascript将新值附加到选择选项。 (如果新值不发送到后端)
  2. Ajax并获取新列表。
  3. 案例2的示例,我们可以将DropDownList放到partialview中并使用ajax在partialview中获取最新的DropDownList。

    控制器:

    public ActionResult QueryNewList()
    {
        return PartialView("~/Views/Home/_urPartialView.cshtml", viewModel);
    }
    

    HTML:

    <div id="myDiv"></div>
    

    JS:

     $.ajax({
          dataType: "html",
          url: "QueryNewList",
          success: function (html) {
                $("#myDiv").html("");
                $("#myDiv").append(html);
           }
      })