在asp-net MVC razor视图中使用模型数据绑定下拉列表时,我们可以过滤数据吗?

时间:2016-01-11 13:43:06

标签: c# asp.net-mvc linq

我想在下拉列表中加载少数基于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" })

我们不能用这种方式填充下拉菜单吗?如果我在代码中犯了错误,那么请引导我使用新的纠正代码示例。

1 个答案:

答案 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();

我希望它有所帮助!