也许它会重复,但我没有找到任何可以帮助我解决问题的东西。
我有可以拥有不同ViewModel的Controller:
我想做点什么:
[HttpPost]
public ActionResult ExportToExcell(ILeadsViewModel model)
{
}
我的ViewModel是:
public class ViewModelTest1 : ILeadsViewModel
public class ViewModelTest2 : ILeadsViewModel
public class ViewModelTest3 : ILeadsViewModel
有没有机会为我的ViewModel配置Unity返回正确的实例? 如果可能怎么样? 如果可能,但你不建议这样做,请解释原因。
感谢。
答案 0 :(得分:1)
您可以为ILeadsViewModel
类型编写一个自定义模型绑定器,它将根据某些请求属性返回正确的视图模型。这是自定义模型绑定器的an example
。在这个例子中,我使用了Activator.CreateInstance
具体视图模型的请求中存在的Type属性,但您可以使用Unity或其他任何东西。但请记住,您应该在请求中提供一些信息,以便模型绑定器知道要返回的视图模型的具体实例。