我有使用控制器中的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,
});
有人能指出我在这里做错了什么吗?
感谢。
答案 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中的值应匹配