2016-03-11 31 views
0

我正在嘗試爲jquery-datatable實現服務器端分頁和排序。 但問題是我不能夠發表數據表中的數據綁定到我的動作模型 到做排序和過濾MVC4將DataTable請求參數綁定到操作過濾器

這裏發表jQuery的數據表Ajax請求

draw:5 
columns[0][data]:FirstName 
columns[0][name]:FirstName 
columns[0][searchable]:true 
columns[0][orderable]:true 
columns[0][search][value]: 
columns[0][search][regex]:false 
columns[1][data]:LastName 
columns[1][name]:LastName 
columns[1][searchable]:true 
columns[1][orderable]:true 
columns[1][search][value]: 
columns[1][search][regex]:false 
...... 
columns[n][data]:Position 
columns[n][name]:Position 
columns[n][searchable]:true 
columns[n][orderable]:true 
columns[n][search][value]: 
columns[n][search][regex]:false 
order[0][column]:1 
order[0][dir]:desc 
start:0 
length:10 
search[value]: 
search[regex]:false 

和數據我操作方法是:

public JsonResult GetGridData(GridFilter filter) 
{ ....} 

and my model classes are 

    public class GridFilter 
    { 
     public int draw { get; set; } 

     public List<ColModel> columns { get; set; } 
     public List<Order> order { get; set; } 

     public int start {get;set;} 

     public int length {get;set;} 

     public search search { get; set; } 
    } 

    public class ColModel 
    { 
     public string data { get; set; } 

     public string name { get; set; } 

     public string searchable { get; set; } 

     public string orderable { get; set; } 
    } 

    public class Order 
    { 
     public string dir { get; set; } 
     public string column { get; set; } 
    } 

    public class search 
    { 
     public string value {get;set;} 
     public string regex {get;set;} 
    } 

我怎樣才能使數據綁定正常使用默認的MVC模式,粘合劑是一個自定義的。

感謝

回答

1

確保你的模特屬性具有相同的數據類型定義here.

而且你已經走了一個層次太與你models.They就單個參數發送,所以你不需要該GridFilter模型,他們應該接受,像這樣:

[HttpPost] 
    public JsonResult GetGridData(List<ColModel> columns, List<Order> order, Search search, int? start, int? length, int? draw) 
    { 

    } 
+0

不,它不工作 –

+0

嘗試增加'[HttpPost]'到你的動作 –

+0

道歉,你的一些數據類型是不正確的你模型 –