首页 > 解决方案 > ASP.NET Core 2.2 主布局模型问题

问题描述

我在 ASP.NET Core 2.2 项目中有一个主布局,它使用模型(与其他视图一样)来创建整个网站的独特设计,我的每个视图都使用不同的模型,但它们都应该加载到单个布局文件中。当我的布局需要一个模型时,如何将不同的模型传递给不同的视图?

我不想为每个视图组创建大量布局文件

可视化:

Product.cshtml(产品型号)==> _Layout.cshtml(产品型号)

Category.cshtml(类别模型)==> _Layout.cshtml(类别模型)

但是 _Layout.cshtml 只需要一个模型

标签: asp.net-corerazormodel-view-controllerlayoutmodel

解决方案


目前没有办法让 _Layout.cshtml 取两个不同的模型。

您能做的最好的事情是创建一个基本模型,例如

   public class LayoutModel
   {
     public string LayoutFieldA { get; set; }
   }

然后您的页面模型可以继承基本模型,如下所示

   public class ProductModel : LayoutModel
   {
     public string ProductFieldA { get; set; }
   }


   public class CategoryModel : LayoutModel
   {
     public string CategoryFieldA { get; set; }
   }

推荐阅读