C#绑定不同对象类型的JSon列表到它们的模型

时间:2014-04-25 12:48:22

标签: c# asp.net-mvc json model-binding

我试图将一个JSon发送回控制器,其属性是一个泛型类的列表。在该列表中,将存在不同专用类的实例。如下所示:

class Coluna 
{ (...) }

class ColunaInformacao : Coluna 
{ (...) }

class ColunaResposta : Coluna
{ (...) }

和list属性本身:

class Apuracao 
{
  public List<Coluna> Colunas { get; set; }
}

在视图上,我成功创建了一个带有Apuracao实例和它的列表属性(Colunas)的JSon,其中我有{{1}的实例}和ColunaInformacao类型。

问题是:当控制器将JSon绑定到我的模型时,它会在类型ColunaResposta上创建列表属性上的所有项目,并丢弃特定类中的额外数据({{ 1}}和Coluna)。

如何在绑定上完成正确的类型?

编辑: 只是为了澄清一点: 我将数据从视图发送到控制器。 JSON完美形成。 控制器接收它并且没有任何问题地绑定它。

我的问题依赖于JavaScript类的松散类型,因此,没有&#34;类类型&#34;在它上面(通用[对象]除外)。绑定JavaScript类的字符串版本(JSon)时,defaultBinder如何知道它必须在我的C#模型上使用哪个专用类。

0 个答案:

没有答案