C# 从sql Ienumerable问题查看Mvc控制器
我试图从SQL中的表中获取所有信息(列、行),并将其作为模型发送到视图 我也希望它是清晰的 我的控制器:C# 从sql Ienumerable问题查看Mvc控制器,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,我试图从SQL中的表中获取所有信息(列、行),并将其作为模型发送到视图 我也希望它是清晰的 我的控制器: MVCEntities me = new MVCEntities(); List<CarsCategory> arr = me.CarsCategories.ToList(); return View(arr); MVCEntities me=新的MVCEntities(); List arr=me.CarsCategories.
MVCEntities me = new MVCEntities();
List<CarsCategory> arr = me.CarsCategories.ToList();
return View(arr);
MVCEntities me=新的MVCEntities();
List arr=me.CarsCategories.ToList();
返回视图(arr);
我的视图模型:
@model IEnumerable<CarsCategory>
@model IEnumerable
在视图中,我尝试循环浏览某个列,如下所示:
<select id="SelectManufacturer">
@foreach (var i in Model)
{
<option value="@i.Manufacturer">@i.Manufacturer</option>
}
</select>
<select id="SelectManufacturer">
@{
var manufacturers = Model.Select(x => x.Manufacturer).Distinct().ToList();
foreach (var i in manufacturers)
{
<option value="@i">@i</option>
}
}
</select>
@foreach(模型中的var i)
{
@i、 制造商
}
我该如何区分它?当我尝试添加Distinct时,它为我提供了
system.linq.enumerable+..
虽然它不是处理视图内部数据的好方法,但您的解决方案可能如下所示:
<select id="SelectManufacturer">
@foreach (var i in Model)
{
<option value="@i.Manufacturer">@i.Manufacturer</option>
}
</select>
<select id="SelectManufacturer">
@{
var manufacturers = Model.Select(x => x.Manufacturer).Distinct().ToList();
foreach (var i in manufacturers)
{
<option value="@i">@i</option>
}
}
</select>
@{
var manufacturers=Model.Select(x=>x.Manufacturer.Distinct().ToList();
foreach(制造商的var i)
{
@我
}
}
控制器应负责向视图提供数据,除非您需要无法维护的代码,否则不应使用一组逻辑来尝试聚合此数据。最好的方法是将视图模型扩展为具有多个属性
模型
剃刀视图
@model CategoryModel
@foreach(模型制造商中的var i)
{
@i、 名字
}
请分享准确的错误详细信息,以及您在何处尝试过?你试过我了吗。CarsCategories.Distinct().ToList()@这不是一个错误。当我在没有distinct的I.manufacturer中循环时(如上面的示例),它会给我几次相同的名称,当我向I.manufacturer中添加distinct时(如I.manufacturer.distinct()),它会给我“system.linq.enumerable+”而不是实名use distinct at controller not view List arr=me.CarsCategories.distinct().ToList();如果您只需要不同的名称,并在返回视图之前在控制器中对此进行筛选。@但仍不工作。我已经试过了。还是一次又一次地叫同一个名字
@model CategoryModel
<select id="SelectManufacturer">
@foreach (var i in Model.Manufacturers)
{
<option value="@i.Id">@i.Name</option>
}
</select>