控制器可以将接口实例作为参数吗? ASP .NET MVC

时间:2010-03-20 17:32:58

标签: c# asp.net-mvc

ASP .NET Controller操作方法可以将接口作为参数之一吗?

我希望有类似的东西:

class MyController 
{
    [HttpPost]
    public ActionResult Action(IMyModel model) {...}
}

有可能吗?显然我必须告诉框架应该实例化IMyModel的具体实现,但是如何?

2 个答案:

答案 0 :(得分:4)

或多或少everything is extensible in ASP.NET MVC所以是的;这应该是可能的。看看Model Binders,我认为这就是你要找的东西。

答案 1 :(得分:1)

开箱即用,没有。然而,正如andiju所说,MVC中的一切都是可插拔的。鉴于您所追求的模式,我建议您考虑使用IoC容器(Windsor,Unity,StructureMap),然后设置基于IoC的模型绑定器和基于IoC的控制器构建器。这是最灵活的方法,并且在你的应用程序的生命周期中实际解决这些具体类型方面也是最不会头痛的(我认为)。