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)
不同的项目应该只是使用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)
| 归档时间: |
|
| 查看次数: |
6331 次 |
| 最近记录: |