这是我的代码,用于将数据从我的数据库显示为下拉列表。我正在寻找一种方法来删除重复项,以便只显示每个重复项的一个实例。有人知道一个简单的方法吗?
@model IEnumerable<bookingsMVC.Models.member>
<select id="myTown">
@foreach (var item in Model)
{
<option id="@Html.DisplayFor(model => item.town)" value="@Html.DisplayFor(model => item.town)"> @Html.DisplayFor(model => item.town)</option>
}
</select>
型号:
namespace bookingsMVC.Models
{
public class member
{
public int ID { get; set; }
public string username { get; set; }
public string fname { get; set; }
public string lname { get; set; }
public string address1 { get; set; }
public string address2 { get; set; }
public string town { get; set; }
public string postcode { get; set; }
public string phone { get; set; }
public string email { get; set; }
public string password { get; set; }
public string memcat { get; set; }
public string Admin { get; set; }
}
}
答案 0 :(得分:2)
您可能希望在控制器中执行此操作并管理不同城镇的实际过滤,这样您只需将具有不同城镇值的列表传递给您的viewmodel
答案 1 :(得分:1)
通常,要保留完整的Item
对象,您可以GroupBy
使用First()
来检索每个组中的第一个:
@foreach (var item in Model.GroupBy(m => m.town).Select(g => g.First()))
...