C# 在MVC Razor中使用实体框架创建动态列表
我想使用存储过程和实体框架创建一个列表,用车辆品牌填充,但当它出现以下错误时: 传递到字典中的模型项的类型为“System.Collections.Generic.ListC# 在MVC Razor中使用实体框架创建动态列表,c#,asp.net-mvc,entity-framework,razor,asp.net-mvc-5,C#,Asp.net Mvc,Entity Framework,Razor,Asp.net Mvc 5,我想使用存储过程和实体框架创建一个列表,用车辆品牌填充,但当它出现以下错误时: 传递到字典中的模型项的类型为“System.Collections.Generic.List1[System.String]”,但此字典需要类型为“System.Collections.Generic.IEnumerable1[VehicleInfo.Models.Tblehicle]”的模型项 型号 public partial class tblVehicle { public s
1[System.String]”,但此字典需要类型为“System.Collections.Generic.IEnumerable
1[VehicleInfo.Models.Tblehicle]”的模型项
型号
public partial class tblVehicle
{
public string BrandName{ get; set; }
}
控制器
public ActionResult Index()
{
VehicleDBContext db = new VehicleDBContext();
var brandnames = db.prcGetMakes().ToList();
return View(brandnames);
}
查看
@model IEnumerable<VehicleInfo.Models.tblVehicle>
<ul id="Makes">
@foreach (var item in Model)
{
<li>@item.BrandName.Distinct()</li>
}
</ul>
一定有一些我明显遗漏的东西,但我似乎无法解决
请帮忙 从错误消息看,动作方法中的表达式
db.prcGetMakes().ToList()
将返回字符串列表,并将其传递给视图。但是您的视图被强类型化为tblvehichile
对象的列表,因此会得到关于类型不匹配的错误消息
解决方案是使这两种类型匹配。您可以将视图更新为强类型的string
类型列表
@model IEnumerable<string>
<ul id="Makes">
@foreach (var item in Model)
{
<li>@item</li>
}
</ul>
@model IEnumerable
@foreach(模型中的var项目)
{
- @项目
}
从错误消息看,动作方法中的表达式db.prcGetMakes().ToList()
返回字符串列表,您正在将其传递给视图。但是您的视图被强类型化为tblvehichile
对象的列表,因此会得到关于类型不匹配的错误消息
解决方案是使这两种类型匹配。您可以将视图更新为强类型的string
类型列表
@model IEnumerable<string>
<ul id="Makes">
@foreach (var item in Model)
{
<li>@item</li>
}
</ul>
@model IEnumerable
@foreach(模型中的var项目)
{
- @项目
}
db.prcGetMakes().ToList()的结果类型是什么?这是一个字符串列表吗?那么错误是不言自明的。您的视图被强类型化为tblvehile
列表。使用当前视图代码,基本上需要返回tblvehile
对象的列表。非常感谢:)db.prcGetMakes().ToList()的结果类型是什么?这是一个字符串列表吗?那么错误是不言自明的。您的视图被强类型化为tblvehile
列表。使用当前视图代码,您基本上需要返回tblvehile
对象的列表。非常感谢:)