c# - asp.net mvc 父 View 中的多个部分/ subview

标签 c# asp.net-mvc asp.net-mvc-4 collections

我想创建一个如下图所示的 View 页面。它有 3 个部分。

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

第 2 部分:摘要 1 - 显示带有简短描述的 2 个最新推出的产品

第 3 部分:摘要 2 - 显示 3 个带有简短描述的最新小组讨论主题

enter image description here

为此我刚刚关注了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/

相关文章:

javascript - Ajax.BeginForm 标识 OnComplete 方法中单击了哪个按钮

c# - .Net 控制台应用程序作为 CLI 命令

c# - WPF 滚动按钮(按住功能)

asp.net-mvc - 如何在 mvc 中将 formcollection 转换为模型

asp.net-mvc - 当 Entity Framework 在单独的库中时模型上的部分类

asp.net-mvc - 带有 Dotnetopenauth 的自定义配置文件提供程序新的 MVC 4 模板

c# - 调试时停止 Visual Studio 启动当前选择/打开的 HTML 页面

c# - 如何使用 FluentMigrator 在预览 sql 脚本中添加开始事务和回滚事务?

c# - 为什么 Convert.ToDateTime() 在此示例中不起作用?

c# - ELMAH 日志处理异常