C# 从sql Ienumerable问题查看Mvc控制器

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.

我试图从SQL中的表中获取所有信息(列、行),并将其作为模型发送到视图

我也希望它是清晰的

我的控制器:

        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>