在另一个模型中使用模型方法和属性

时间:2014-09-19 18:26:29

标签: c# asp.net-mvc-3

提前感谢您的帮助。

我正在使用继承来利用基本模式中的属性,如下所示:HomeModel : BaseModel

这是按预期工作的,但现在我想更进一步。我想再使用一个级别,以便新模型继承HomeModel

中的所有内容

我创建了一个像这样的NavModel

public class NavModel : HomeModel {
    public string CloudVersion{get;set;}
    public IMxUser Usr {get;set;}
    public ILocalizer Localizer {get;set;}
    public NavModel(IMxUser mxUser, ILocalizer localizer)
    {
        Localizer = localizer;
        Usr = mxUser;
        CloudVersion = ConfigurationManager.AppSettings["cloudVersion"];
    }
}

但它引发了错误

'HomeModel' does not contain a constructor that takes 0 arguments.

像我这样菊花链是不是一个坏主意?我究竟做错了什么?有更好的方法吗?

更新

在添加空构造函数之前,这是标准的HomeModel构造函数:

public HomeModel(IMxUser mxUser, ILocalizer localizer)
{
    Localizer = localizer;
    Usr = mxUser;
    BomSearchJavascriptMethod = GetSearchJavascriptMethod(MnxConst.SearchOptions.BILL_OF_MATERIAL, EnterBOMSearchKeyStr);
    POSearchJavascriptMethod = GetSearchJavascriptMethod(MnxConst.SearchOptions.PURCHASE_ORDER_NUMBER, EnterBOMSearchKeyStr);
}

如果我可以在相关模型中使用标准HomeModel,那将会很好,但我不知道如何使用我当前的参考方法传递这些。

1 个答案:

答案 0 :(得分:3)

你必须使用这样的初始化程序初始化基类:

public HomeModel(IMxUser mxUser, ILocalizer localizer)
  : base(mxUser, localizer)
{
    // ...
}