我想在下拉列表中加载少数基于item.StateID
的基于模型的模型。所以我用下面的代码做了,但是我收到了一个错误。我在谈论这一行Model.Cities.SelectMany(x => x.StateID == item.StateID)
@Html.DropDownListFor(x => x.SelectedCityId, new SelectList(
Model.Cities.SelectMany(x => x.StateID == item.StateID), "ID", "Name", Model.SelectedCityId = item.CityID), "-- Select City--",
new { id = "cboCity", @class = "edit-mode" })
我们不能用这种方式填充下拉菜单吗?如果我在代码中犯了错误,那么请引导我使用新的纠正代码示例。
答案 0 :(得分:0)
我不知道我是否理解你想要的东西......我希望是的! : - )
也许这对你有用......这是我用的,它对我有用。
在控制器中:
var list = (from x in db.Cities
where
x.StateID == item.StateID
select x)ToList();
list.Add(new City { SelectedCityId = 0, Nombre = "-- Select City--" });
list = list.OrderBy(c => c.Name).ToList();
ViewBag.SelectedCityId = new SelectList(list, "SelectedCityId", "Name");
在视图中:
<div class="form-group">
@Html.LabelFor(model => model.SelectedCityId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("SelectedCityId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.SelectedCityId, "", new { @class = "text-danger" })
</div>
</div>
也许您必须更改模型的名称和/或我在代码中添加的字段... db的声明应该是这样的:
YourContext db = new YourContext();
我希望它有所帮助!