我想将模型传递给布局和视图,其中包含通用对象类型。我有以下内容;

   public class BaseModel
   {
       public int ProductId {get;set;}
       public Object ModelObject { get; set; }
   }

   public class ProductType1
   {
        public string Name {get;set;}
        public decimal Price {get;set;}
   }

   public class ProductType2
   {}

   public ActionResult Index()
   {
      BaseModel baseModel = new BaseModel();
      baseModel.ModelObject = new ProductType1();
      return View("View1", "_MyLayOut", baseModel);
   }


因此,在此示例中,我将传递包含对象类型ProductType1的baseModel到布局。在我的布局顶部

@model Project1.Models.BaseModel


在视图中,如何将ModelObject强制转换为ProductType1,因此例如可以引用类似于ProductType1.Name的模型。

最佳答案

public class BaseModel<T>
{
    public int ProductId {get;set;}
    public T ModelObject { get; set; }
}
// ...
BaseModel<ProductType1> baseModel = new BaseModel<ProductType1>();
// ...
@model Project1.Models.BaseModel<ProductType1>

10-08 18:00