.net mvc5在select中显示不同的元素

Tar*_*ani 1 .net razor asp.net-mvc-5

我正在使用.net MVC5框架开发Web应用程序.我的视图从模型中获取信息,并在两个单独的选择元素中显示建筑类型和楼层数.但是,我只需要显示独特的建筑类型和楼层数信息.如果问题的形象下面![

我不知道该怎么做.这是该页面的代码:

@model IEnumerable<BIRDSResidential.Models.ResidentialBuilding>
@{
    ViewBag.Title = "ResidentialBuilding";
}

<div class="row">
    <div class="col-md-3">
        <select>
            @foreach (var item in Model)
            {
                <option value="">@Html.DisplayFor(modelItem => item.type)</option>
            }
        </select>
    </div>
    <div class="col-md-3">
        <select>
            @foreach (var item in Model)
            {
                <option value="">@Html.DisplayFor(modelItem => item.stories)</option>
            }
        </select>
    </div>
    <div class="col-md-offset-5 col-md-1">
        <button type="button" class="btn btn-default">
            <span class="glyphicon glyphicon-info-sign"></span>
        </button>
    </div>
</div
Run Code Online (Sandbox Code Playgroud)

>

编辑

我将上面的代码更新为以下内容:

<div class="row">
    <div class="col-md-3">
        @Html.DropDownList("ResidentialBuilding", new SelectList(Model.Select(x => x.type).Distinct()))
    </div>
    <div class="col-md-3">
        @Html.DropDownList("ResidentialBuilding", new SelectList(Model.Select(x => x.stories).Distinct()))
    </div>
    <div class="col-md-3">
        @Html.DropDownList("ResidentialBuilding", new SelectList(Model.Select(x => x.size)))
    </div>
    <div class="col-md-offset-2 col-md-1">
        <button type="button" class="btn btn-default">
            <span class="glyphicon glyphicon-info-sign"></span>
        </button>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这会适当地呈现信息,但不会向选项元素添加任何值属性.如果我在控制器中使用该行(如下所示),则distinct选项不起作用,但会将值添加到选项标记中.任何线索?

//ViewBag.ResidentialBuildings = new SelectList(db.ResidentialBuildings, "ID", "type");
Run Code Online (Sandbox Code Playgroud)

Bra*_*tie 9

不同的项目应该只是使用LINQ扩展.Distinct(与使用.Select仅提取到类型)相关的问题.例如

@foreach (var item in Model.Select(x => x.type).Distinct())
{
    <option value="">@Html.DisplayFor(x => item)</option>
}
Run Code Online (Sandbox Code Playgroud)

但是,我会考虑使用Html.DropDownList帮助程序来简化生活:

@Html.DropDownList("", new SelectList(Model.Select(x => x.type).Distinct()))
Run Code Online (Sandbox Code Playgroud)