我使用asp.net MVC模型绑定来接受ajax的参数。
我有一个对象,它的数据结构如下:
{
"conditions": [
{
"field": "",
"opreator": "",
"value": ""
},[{
"field": "",
"opreator": "",
"value": ""
},
{
"field": "",
"opreator": "",
"value": ""
}]
],
"name": "query",
}
C#数组不能有不同的类型。 (属性条件是具有对象和数组的arrray)。
所以我定义了一个对象数组。
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
)。我认为模型绑定甚至没有设置属性的值。所以这是一个糟糕的方式。
我想知道是否有其他方法可以做到这一点?
更新
conditions
的{{1}}属性是一个对象数组,因为它包含对象和数组。
答案 0 :(得分:0)
条件应该是类型条件的数组而不是简单对象。
尝试替换
public object[] conditions { get; set; }
带
public condition[] conditions { get; set; }
答案 1 :(得分:0)
实际上你正在发送类型对象的列表,因为没有定义类型,所以你可以做这样的事情
public List<object> conditions { get; set; }
这将获得列表,但你的json应该是这样的
conditions:[{
"field": "",
"opreator": "",
"value": ""
},
{
"field": "",
"opreator": "",
"value": ""
}]
然后您的类型将是
public List<condition> conditions { get; set; }