根据下拉列表中的模型设置选定值

时间:2017-08-10 04:55:07

标签: c# asp.net-mvc razor

我有使用控制器中的viewBag填充的下拉值。

$(document).on('click', '.expand', function(){
    var view_current = $(this).data("id3");
    var that = this;
    $.ajax({
      url: "comAssessment/hr_tree_selected.php",
      method: "POST",
      data: {view_current: view_current},
      dataType:"text",
      success: function (data) {
         //$('.tree').html(data).slideDown("slow");
         $(that).closest('.tree').html(data).slideDown("slow"); // use this line
     }
   });
});    

以下是我在视图中使用的代码。 对于这种情况,我对model.Excursion有价值。但它没有在下拉值中被选中。下拉仍显示空值。

ViewBag.Excursion = excursions_List.ResultList.Select(x => new SelectListItem()
{
      Text = x.ExcursionName,
      Value = x.ExcursionName,
});

有人能指出我在这里做错了什么吗?

感谢。

1 个答案:

答案 0 :(得分:0)

在您的观点中执行此操作:

@{
List<SelectListItem> packages = ViewBag.PackageList as List<SelectListItem>;
}

@Html.DropDownListFor(model => model.IssuedFor, packages, "Select a Package", new { id = "issuedFor", @class = "form-control" })

在控制器中,最好使用ID:

ViewBag.PackageList = pkgList.ResultList.Select(x => new SelectListItem()
{
    Text = x.PackageName,
    Value = x.Id, //use the id
});

如果您将id作为值分配给IssuedFor,并且您在下拉列表中使用包名称作为Value,则它将无效。 ddl和IssuedFor中的值应匹配