如何将多类型javascript数组映射到C#数组
我使用asp.net MVC模型绑定来接受ajax的参数 我有一个对象,它的数据结构如下:如何将多类型javascript数组映射到C#数组,c#,asp.net-mvc,C#,Asp.net Mvc,我使用asp.net MVC模型绑定来接受ajax的参数 我有一个对象,它的数据结构如下: { "conditions": [ { "field": "", "opreator": "", "value": "" },[{ "field": "", "opreator": "", "value": "" },
{
"conditions": [
{
"field": "",
"opreator": "",
"value": ""
},[{
"field": "",
"opreator": "",
"value": ""
},
{
"field": "",
"opreator": "",
"value": ""
}]
],
"name": "query",
}
C#数组不能有不同的类型。(属性条件是具有对象和数组的阵列)
所以我定义了一个对象数组
public class QueryVM
{
public class condition
{
public string field { get; set; }
public string opreator { get; set; }
public string value { get; set; }
}
public object[] conditions { get; set; }
public string name { get; set; }
}
但是我收到的属性条件只是一个对象数组。我无法访问它的实际属性,甚至不知道它的实际类型是(QueryVM.condition
或array
)。我认为模型绑定甚至没有设置属性的值。所以这是一个糟糕的方式
我想知道是否有其他方法可以做到这一点
更新
QueryVM
的conditions
属性是对象数组,因为它包含对象和数组。conditions应该是condition类型的数组,而不是简单对象
试着替换
public object[] conditions { get; set; }
与
实际上,您正在发送类型对象的列表,因为该类型未定义,所以您可以执行以下操作
public List<object> conditions { get; set; }
然后你的类型就是
public List<condition> conditions { get; set; }
公共列表条件{get;set;}
字段条件的类型应为条件[]而不是对象[],此外,这不是有效的json。
conditions:[{
"field": "",
"opreator": "",
"value": ""
},
{
"field": "",
"opreator": "",
"value": ""
}]
public List<condition> conditions { get; set; }