繁体   English   中英

在asp.net mvc中的父视图中有多个部分/子视图

[英]multiple partial/child views in parent view in asp.net mvc

我想创建一个如下图所示的视图页面。 它分为三个部分。

第1节:表格列表-显示可用产品列表

第2节:摘要1-用简短的说明显示最新推出的2种产品

第3节:摘要2-用简短说明显示最新的小组讨论主题中的3个

在此处输入图片说明

为此,我只是遵循了本教程

我只是尝试最初将表显示为部分视图。后来我希望添加其他两个部分。

像这样设计的模型

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”接受“ 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;
        }

在这里,你试图返回ProductTableViewModels的列表中ProductTableViewModel。所以单个项目的第一个变化返回类型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;
}

暂无
暂无

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

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