MVC 3动作依赖注入

时间:2012-12-02 09:50:59

标签: asp.net-mvc asp.net-mvc-3 dependency-injection unity-container

也许它会重复,但我没有找到任何可以帮助我解决问题的东西。

我有可以拥有不同ViewModel的Controller:

我想做点什么:

[HttpPost]
public ActionResult ExportToExcell(ILeadsViewModel model)
{


}

我的ViewModel是:

public class ViewModelTest1 : ILeadsViewModel

public class ViewModelTest2 : ILeadsViewModel

public class ViewModelTest3 : ILeadsViewModel

有没有机会为我的ViewModel配置Unity返回正确的实例? 如果可能怎么样? 如果可能,但你不建议这样做,请解释原因。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以为ILeadsViewModel类型编写一个自定义模型绑定器,它将根据某些请求属性返回正确的视图模型。这是自定义模型绑定器的an example。在这个例子中,我使用了Activator.CreateInstance具体视图模型的请求中存在的Type属性,但您可以使用Unity或其他任何东西。但请记住,您应该在请求中提供一些信息,以便模型绑定器知道要返回的视图模型的具体实例。