繁体   English   中英

在MVC Razor中使用实体框架创建动态列表

[英]Create a Dynamic List using Entity Framework in MVC Razor

我想使用存储过程和实体框架使用车辆制造商来填充列表,但是当出现以下错误时:

传递到词典中的模型项的类型为'System.Collections.Generic.List 1[System.String]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable 1 [VehicleInfo.Models.tblVehicle ]”。

模型

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>

储存程序

CREATE PROCEDURE [dbo].[prcGetMakes] 

AS
BEGIN

    SET NOCOUNT ON;

    SELECT DISTINCT
        UPPER(BrandName) BrandName
    FROM
        tblVehicle
    ORDER BY
        BrandName
END

肯定有一些我很想念的东西,但是我似乎无法解决。

请帮忙!

从错误消息中,您的action方法中的表达式db.prcGetMakes().ToList()看起来返回了一个字符串列表,并将其传递给视图。 但是,您的视图被强类型tblVehicle对象的列表,因此会收到有关类型不匹配的错误消息。

解决方案是使两种类型匹配。 您可以将视图更新为string类型的强类型列表

@model IEnumerable<string>

<ul id="Makes">
   @foreach (var item in Model)
   {
      <li>@item</li>
   }
</ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM