【问题标题】:ASP.Net Model Binding Issue - DataTables.netASP.Net 模型绑定问题 - DataTables.net
【发布时间】:2014-05-12 19:35:53
【问题描述】:

编辑:问题在于发送的 url 参数如下:columns[0][name] 并且 Asp.Net 没有获取 [name] 属性。如何让 Asp.Net 捕获 name 属性?

我正在使用 jQuery DataTables 1.10(新版本)和处理服务器端。我收到一个格式如下的 http 请求:

请求标头:

Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,it;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
X-Requested-With:XMLHttpRequest

请求查询字符串中编码的变量:

draw:16
columns[0][data]:0
columns[0][name]:
columns[0][searchable]:true
columns[0][orderable]:true
columns[0][search][value]:
columns[0][search][regex]:false
columns[1][data]:1
columns[1][name]:
columns[1][searchable]:true
columns[1][orderable]:true
columns[1][search][value]:
columns[1][search][regex]:false
columns[2][data]:2
columns[2][name]:
columns[2][searchable]:true
columns[2][orderable]:true
columns[2][search][value]:
columns[2][search][regex]:false
order[0][column]:0
order[0][dir]:desc
start:0
length:10
search[value]:Log
search[regex]:false

模型绑定成功解析出第一层。我可以看到有 3 列、1 个订单和一个搜索,但这些始终为空。我应该如何制作模型才能正确绑定?我试过字典和数组都无济于事。

这里是我要绑定的模型供参考:

public class DataTableParameterModel
{
        public int draw { get; set; }
        public int start { get; set; }
        public int length { get; set; }
        public DataTablesSearch search { get; set; }
        public DataTablesColumn[] columns { get; set; }
        public DataTablesOrder[] order { get; set; }
        public int folderId { get; set; } 
}

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

【问题讨论】:

    标签: jquery asp.net-mvc model-binding jquery-datatables


    【解决方案1】:

    在这里,我的解决方法。也许它不是最好的,但对我有用。

    我对绑定过程的模型定义如下:

        public class DataTablesSentParameters
    {
        public int draw { get; set; }
        public int start { get; set; }
        public int length { get; set; }
        public IDictionary<string, string> search { get; set; }
        public IDictionary<string, string>[] order { get; set; }
        public IDictionary<string, string>[] columns { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多