我想创建一个如下图所示的视图页面。它有3个部分。
第1部分:表列表 - 显示可用产品列表
第2部分:摘要1 - 显示最新推出的2个带有简短描述的产品
第3节:摘要2 - 显示3个最新的小组讨论主题和简短描述
为此我只关注了this Tutorial
我刚试图创建将表格初始化为局部视图。我希望添加其他两个部分。
像这样的设计模型
public class DashboardViewModel
{
public ProductTableViewModel ProductTable;
public NewProductViewModel NewProduct;
public DiscussionsViewModel Discussions;
}
public class ProductTableViewModel
{
[Display(Name = "S.No")]
public string Product_ID { get; set; }
[Display(Name = "Product Title")]
public string Product_Title_EN { get; set; }
.....
}
为此我就像这样创建了DAL
public class DashboardData
{
public DBEntities db = new DBEntities();
public ProductTableViewModel GetAllProducts()
{
var result = (from product in db.AB_Product
.....
select new ProductTableViewModel
{
.....
}).ToList();
return result;
}
然后我在控制器中这样称呼它。
public ActionResult Dashboard()
{
ProductTableViewModel pdct = new ProductTableViewModel();
DashboardViewModel puff = new DashboardViewModel();
puff.ProductTable = pdct.GetAllProducts();
return View(puff);
}
然后我得到以下错误
无法隐式转换类型 System.Collections.Generic.List< project_name.Models.ProductTableViewModel>” 到'project_name.Models.ProductTableViewModel'
其他错误
'ProductTableViewModel'不包含的定义 'GetAllProducts'并且没有扩展方法'GetAllProducts'接受a “ProductTableViewModel”类型的第一个参数
答案 0 :(得分:2)
将pdct ProductTableViewModel的类型更改为DashboardData
DashboardData pdct = new DashboardData()
和
public class DashboardViewModel
{
public List<ProductTableViewModel> ProductTable;
public NewProductViewModel NewProduct;
public DiscussionsViewModel Discussions;
}
public List<ProductTableViewModel> GetAllProducts()
{
var result = (from product in db.AB_Product
.....
select new ProductTableViewModel
{
.....
}).ToList();
return result;
}
答案 1 :(得分:2)
在这里,您尝试返回 ProductTableViewModel 列表,而不是单个 ProductTableViewModel .So首先将返回类型更改为List<ProductTableViewModel>
public class DashboardData
{
public DBEntities db = new DBEntities();
public List<ProductTableViewModel> GetAllProducts()
{
var result = (from product in db.AB_Product
.....
select new ProductTableViewModel
{
.....
}).ToList();
return result;
}
}
然后尝试根据需要更改ViewModel
public class DashboardViewModel
{
public List<ProductTableViewModel> ProductTable;
public NewProductViewModel NewProduct;
public DiscussionsViewModel Discussions;
}