Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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
C# Web Api服务器端处理和数据表参数_C#_Asp.net Mvc_Datatable_Asp.net Web Api2_Model Binding - Fatal编程技术网

C# Web Api服务器端处理和数据表参数

C# Web Api服务器端处理和数据表参数,c#,asp.net-mvc,datatable,asp.net-web-api2,model-binding,C#,Asp.net Mvc,Datatable,Asp.net Web Api2,Model Binding,我试图创建一个对象,该对象表示datatables提供给我的web api调用的值,然后将其路由到另一个实际返回值的api(以将datatables与api接口分离) 在研究了datatables wiki之后,我最终定义了以下对象: public class DataTableParameters { public int draw { get; set; } public int start { get; set; } public int length { get;

我试图创建一个对象,该对象表示datatables提供给我的web api调用的值,然后将其路由到另一个实际返回值的api(以将datatables与api接口分离)

在研究了datatables wiki之后,我最终定义了以下对象:

public class DataTableParameters
{
    public int draw { get; set; }
    public int start { get; set; }
    public int length { get; set; }
    public order[] order { get; set; }
    public column[] columns { get; set; }
}

public class order
{
    public int column { get; set; }
    public string dir { get; set; }
}

public class column
{
    public string data { get; set; }
    public string name { get; set; }
    public bool searchable { get; set; }
    public bool orderable { get; set; }
    public search search { get; set; }
}

public class search
{
    public string value { get; set; }
    public bool regex { get; set; }
}
但是,当我尝试将它们用作DataTables api控制器的参数时,结果为空:

    public DataTableResult Get(DataTableParameters parameters) //parameters is null!
    {
         return new DataTableResult();
    }
据我所知,模型绑定应该是读取结果并将其应用于我的对象。这是一个从前端调用api的示例:

Key Value
Request GET /MVC/api/DataTables?action=Get&draw=1&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=asc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1440437669357 HTTP/1.1
为什么我的parameters对象为空,如何修复它

编辑:我还尝试了以下操作:

 public DataTableResult Get(int draw, int start, int length, column[] columns, order[] order)
    {
        return new DataTableResult();
    }

但是我得到“无法将多个参数('columns'和'order')绑定到请求的内容。”

不到10分钟后,我需要参数上的[FromUri]属性

 public DataTableResult Get([FromUri]DataTableParameters parameters)
 {
      return new DataTableResult();
 }