Проблема привязки модели ASP.Net - DataTables.net

0

Изменение: проблема заключается в том, что параметры 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; }
}
Теги:
asp.net-mvc
model-binding
jquery-datatables

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню