【发布时间】:2014-03-04 17:31:26
【问题描述】:
我正在使用 Ninject,我想注入我的模型的属性。我有以下模型
public class TCFormModel
{
public string Name { get; set; }
public IPNConBut pConBut { get; set; }
}
我想用实现IPNConBut 的ConBut 类注入IPNConBut。
public class ConBut : IPNConBut { ... }
我该怎么做?
稍后编辑 - 更多信息:
我的模型在活页夹中使用,但在尝试创建 TCFormModel 实例时失败。这是有道理的,但如何避免这种情况呢?我尝试了两个构造函数,一个是无参数的,一个是绑定参数的。我还在属性甚至构造函数上尝试了 [Inject],我得到了相同的结果。从不使用构造函数。
public class TCFormModelBinder : IModelBinder
{
private const string sessionKey = "TCFM_Model";
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
TCFormModel model = null;
if (controllerContext.HttpContext.Session != null)
{
model = (TCFormModel)controllerContext.HttpContext.Session[sessionKey];
}
if (model == null)
{
model = new TCFormModel();
if (controllerContext.HttpContext.Session != null)
{
controllerContext.HttpContext.Session[sessionKey] = model;
}
}
return model;
}
}
工厂界面:
public interface IPNConButFactory
{
IPNConBut Create();
}
【问题讨论】:
标签: asp.net-mvc model ninject inject