MVC Web API绑定模型到派生类

时间:2014-06-09 16:04:57

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api model-binding

我正在研究如何将模型绑定到MVC Web API中的派生类,我的问题是我认为我已经找到了5种方法...

我拥有的是:

模型 - >

  • 模型库
  • ModelA:ModelBase
  • ModelB:ModelBase

Controller然后容器化方法:

Post(ModelBase model) {}

发布的数据将是ModelA或ModelB,我想将信息添加到HTTP Request元数据(想想Content-Type:application / json; type = ModelA)并基于此告诉MVC将发布的内容绑定到A或B。

在代码中我想象的是:

Bind(request, bindingContext)
{
    // check request headers and then...
    bindingContext.ModelType=typeof(ModelA);

    // let the framework continue doing its thing deserializing the content
    base.Bind(request, bindingContext);
}

其他人怎么做到这一点?或者你会如何推荐这样做?

我见过ParameterBinding,IModelBinder,MediaTypeFormatter等.MVC很棒,但有时很难想到你应该使用哪个钩子......

修改

要添加更多信息,ModelBase很可能会成为一个接口,并且会有数百个具体的类。

它将用于CQRS:Command,然后是ConcreteCommandA,ConcreteCommandB,这些将被推送到调度员,我不想为每个命令执行操作,这是接收这些命令的中心操作,将它们反序列化为正确的类型并转发它们。

0 个答案:

没有答案