我有一個C#視圖類如此接收任意JSON對象:在MVC方法
public class DataObject
{
public int Number { get; set; }
public dynamic Data { get; set; } // <-----
}
在MVC方法被用於這樣
[HttpPost]
public ActionResult SaveData(DataObject request) {}
的問題是,我想收到DataObject
類的Data
屬性中有多種類型的對象。
也就是說,我希望這兩個工作作爲有效的輸入json對象。
1型
{
Number: 1,
Data: {
Text: "a text"
}
}
2型
{
Number: 2,
Data: {
Value: 1,
Options: { 1, 2, 3, 4 }
}
}
有沒有與任何動態對象或一些其他類型的JSON庫魔術這樣的方式(只是把財產動態什麼也沒做) ?
我想要做的就是將此數據存儲在SQL列nvarchar字段中,並在稍後時間(通過實體框架)返回。
另一種解決方案是爲每種輸入類型創建一個視圖模型,但是會有100個變體創建所有這些視圖,並且相應的輸入方法會很麻煩。
根據評論請求添加更多細節:該方法通過Angular調用。
pub.Save = function (jsonData) {
return $http(
{
method: "POST",
url: baseURL + "/Save",
data: { request: jsonData}, // tried this for string
// data: jsonData, // original way
timeout: 30000
}
)
.then(function (result) {
return result.data;
});
}
只要接受字符串,後來轉換,所以可以直接接受任何JSON字符串? – Krishna
僅將Data設置爲字符串屬性無法捕獲值。它始終爲空。 – JensB
不是整個方法輸入的數據像SaveData(字符串jsonstring) – Krishna