我想将模型传递给布局和视图,其中包含通用对象类型。我有以下内容;
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>