Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多类型javascript数组映射到C#数组_C#_Asp.net Mvc - Fatal编程技术网

如何将多类型javascript数组映射到C#数组

如何将多类型javascript数组映射到C#数组,c#,asp.net-mvc,C#,Asp.net Mvc,我使用asp.net MVC模型绑定来接受ajax的参数 我有一个对象,它的数据结构如下: { "conditions": [ { "field": "", "opreator": "", "value": "" },[{ "field": "", "opreator": "", "value": "" },

我使用asp.net MVC模型绑定来接受ajax的参数

我有一个对象,它的数据结构如下:

{
      "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; }