簡體   English   中英

Web Api服務器端處理和數據表參數

[英]Web Api Server Side Processing and DataTables parameters

我正在嘗試創建一個表示數據表提供給我的Web api調用的值的對象,然后將其路由到另一個實際返回值的api(將數據表廢話與api接口分開)。

在對數據表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控制器的參數時,結果為null:

    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

為什么我的參數對象為null,如何解決?

編輯:我也嘗試這樣做:

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

但是我收到“無法將多個參數('列'和'訂單')綁定到請求的內容。”

UGH不到10分鍾后,我需要在參數上使用[FromUri]屬性。

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

您還可以定義自定義DataTableModelBinder,它可以將Datatables HTTP請求參數自動綁定到您的類。 本文是解釋如何實現這種模型綁定程序的文章。

http://www.ezzylearning.com/tutorial/using-jquery-datatables-with-asp-net-web-api

本文介紹了通過Web API使用DataTables的基礎知識

http://www.ezzylearning.com/tutorial/jquery-datatables-paging,-sorting-and-searching-with-asp-net-web-api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM