我想创建一个如下图所示的 View 页面。它有 3 个部分。
第 1 部分:表格列表 - 显示可用产品列表
第 2 部分:摘要 1 - 显示带有简短描述的 2 个最新推出的产品
第 3 部分:摘要 2 - 显示 3 个带有简短描述的最新小组讨论主题
为此我刚刚关注了this Tutorial
我最初只是尝试创建将表格显示为部分 View 。稍后我希望添加其他两个部分。
这样设计的模型
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;
}
然后我在 Controller 中这样调用它。
public ActionResult Dashboard()
{
ProductTableViewModel pdct = new ProductTableViewModel();
DashboardViewModel puff = new DashboardViewModel();
puff.ProductTable = pdct.GetAllProducts();
return View(puff);
}
然后我得到以下错误
Cannot implicitly convert type System.Collections.Generic.List<project_name.Models.ProductTableViewModel>' to 'project_name.Models.ProductTableViewModel'
其他错误
'ProductTableViewModel' does not contain a definition for 'GetAllProducts' and no extension method 'GetAllProducts' accepting a first argument of type 'ProductTableViewModel'
最佳答案
将 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;
}
关于c# - asp.net mvc 父 View 中的多个部分/ subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34038466/