ASP.NET MVC无法将类型System.Collections.Generic.List <string>隐式转换为'string'

问题描述

我正在尝试使用EF从sql检索数据并将其放入viewmodel类型的列表中。 但是,当我尝试检索数据时,会出现以下错误Cannot Implicitly Convert Type System.Collections.Generic.List<.string> to 'string'

我只是想从数据库中检索ID和ProductName列。

任何帮助将不胜感激。

这是我的viewmodel:

public class Productviewmodel
{
    public int ID { get; set; }
    public string Product { get; set; }
}

这是我的控制器代码

public ActionResult TableReport()
{
    List<Productviewmodel> products = new List<Productviewmodel>();
    Productviewmodel product = new Productviewmodel();
    product.Product = db.Products.Select(z => z.ProductName).ToList();
    product.ID = db.Products.Select(z => z.ProductID).ToList();
    return View();
}

解决方法

@GSerg:大声读出您的代码。 “创建一个空的ProductViewModels列表。创建一个空的ProductViewModel。将所有产品名称的列表分配为该单个空ProductViewModel的产品名称。将所有产品ID的列表分配为该单个空的ProductViewModel的ID”。难怪它不起作用,对吗?相反,您应该完成var product = db.Products.Select(z => new ProductViewModel(){ID = z.ProductID,Product = z.ProductName})。ToList();

,

您正在将列表放在string

将您的Viewmodel更改为

 public class ProductViewModel
 {
     public int ID { get; set; }
     public List<string> Product { get; set; }
 }

您还试图将列表放入int中。那也不行。