C# 将模型对象和列表传递到视图
我是ASP.NETMVC的新手,请耐心听我说。我正在尝试将模型对象和列表传递给我的viewmodel 这是我的代码: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; }
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; }
}