C# 将模型对象和列表传递到视图

C# 将模型对象和列表传递到视图,c#,asp.net-mvc,model,C#,Asp.net Mvc,Model,我是ASP.NETMVC的新手,请耐心听我说。我正在尝试将模型对象和列表传递给我的viewmodel 这是我的代码: ViewModel: public class SchemaModel { public IEnumerable<AS_AVTAL_SCHEMA> Schema { get; set; } public IEnumerable<AS_AVTAL_SCHEMA> Ar { get; set; }

我是ASP.NETMVC的新手,请耐心听我说。我正在尝试将模型对象和列表传递给我的viewmodel

这是我的代码:

ViewModel:
    public class SchemaModel
    {
        public IEnumerable<AS_AVTAL_SCHEMA> Schema { get; set; }
        public IEnumerable<AS_AVTAL_SCHEMA> Ar { get; set; }
        public IEnumerable<AS_AVTAL_SCHEMA> Veckor { get; set; }

    }


Controller:
 public ActionResult Schema(int schemaID)
        {
            using (var db = new TTSPEntities())
            {
                var veckor = (from AS_AVTAL_SCHEMA in db.AS_AVTAL_SCHEMA
                              where AS_AVTAL_SCHEMA.AS_AH_LNR == (schemaID)
                              select new
                              {
                                  AS_AVTAL_SCHEMA.AS_SC_VECKA
                              }).ToString().Distinct().ToList();

                var model = new SchemaModel
                {
                    Schema = db.AS_AVTAL_SCHEMA.Where(A => A.AS_AH_LNR == schemaID).ToList(),
                };
                return View(model, veckor);
            }
        }
我得到以下错误:

错误CS0266无法隐式转换类型 'System.Collections.Generic.List' 到 'System.Collections.Generic.IEnumerable'。 存在显式转换(是否缺少强制转换?)


这样做解决了我的问题:

Controller:                 
                var model = new SchemaModel
                {
                    Schema = db.AS_AVTAL_SCHEMA.Where(A => A.AS_AH_LNR == schemaID).ToList(),
                    AS_SC_VECKA = (from AS_AVTAL_SCHEMA in db.AS_AVTAL_SCHEMA
                                   where AS_AVTAL_SCHEMA.AS_AH_LNR == (schemaID)
                                   select AS_AVTAL_SCHEMA.AS_SC_VECKA
                              ).Distinct().ToList()
            };

Viewmodel:
    public class SchemaModel
    {
        public List<int?> AS_SC_VECKA { get; set; }
    }
控制器:
var模型=新模式模型
{
Schema=db.AS\u AVTAL\u Schema.Where(A=>A.AS\u AH\u LNR==schemaID).ToList(),
AS_SC_VECKA=(来自db.AS_AVTAL_模式中的AS_AVTAL_模式
其中AS_AVTAL_SCHEMA.AS_AH_LNR==(schemaID)
选择AS_AVTAL_SCHEMA.AS_SC_VECKA
).Distinct().ToList()
};
视图模型:
公共类模式模型
{
公共列表为_SC_VECKA{get;set;}
}

这是因为您正在返回一个字符串
return
View(model,vecktor)`并且视图中的@model声明的类型为
List
?在查询中删除
.ToString()
。但是您的
返回视图(model,veckor)无论如何都没有意义。第一个参数是W视图的名称,第二个参数是要传递给该视图的模型。@StephenMuecke我在没有
.ToString()
的情况下仍然得到相同的错误。是的,的确如此。似乎无法让它工作。请看我在主帖中的编辑。你需要把错误的全部细节-什么类型到什么?而
Vector
IEnumerable
,但您的查询选择的是
AS\u AVTAL\u模式。AS\u SC\u VECKA
@StephenMuecke更新了主帖子中的错误消息。
Controller:                 
                var model = new SchemaModel
                {
                    Schema = db.AS_AVTAL_SCHEMA.Where(A => A.AS_AH_LNR == schemaID).ToList(),
                    AS_SC_VECKA = (from AS_AVTAL_SCHEMA in db.AS_AVTAL_SCHEMA
                                   where AS_AVTAL_SCHEMA.AS_AH_LNR == (schemaID)
                                   select AS_AVTAL_SCHEMA.AS_SC_VECKA
                              ).Distinct().ToList()
            };

Viewmodel:
    public class SchemaModel
    {
        public List<int?> AS_SC_VECKA { get; set; }
    }