我有一個Web API方法定義如下:如何在定義良好的模型中反序列化動態屬性?
[HttpPost]
public void Post(Input model)
{
...
}
隨着輸入模式是這樣的:
public class Input
{
public string Id { get; set; }
public object Extra { get; set; }
}
我想要做的是通過一個有效的JSON對象類似如下的額外的參數例如使用jQuery:
$.post(
'http://localhost/api/myController',
{
id: 'someId',
extra: {
tags: ['a', 'b'],
anotherValue: 'hello',
oneMore: {
foo: 'bar'
}
}
});
標識來正確地進入我的model.Id財產。然而,額外財產來作爲{對象},因爲我不知道什麼在那裏我不能以任何方式反序列化它。
我試圖使它動態和/或將它強制轉換爲動態/ ExpandoObject/Dictionary沒有成功。我知道如果我只是收到一個原始的HttpRequestMessage並自己處理它,我可能會使它工作。 Hoever,我寧願不這樣做,並依靠.NET的所有驗證。
可能嗎?
感謝
編輯1:測試一些更多的選擇我發現額外屬性沒有任何實際價值,它只是初始化爲新的對象()後。看起來像默認的模型綁定器實現不處理動態JSON(至少不是這樣),只是簡單地調用它無法處理的模型屬性的默認構造函數。
@SanjaMelnichuk我不明白這是如何幫助我的。我沒有可用於傳遞到解串器的JSON字符串。我所擁有的就是模型對象。 – tucaz