Получите имена нескольких столбцов для сортировки в Datatables в Asp.Net MVC - PullRequest
0 голосов
/ 18 мая 2019

Мне нужно реализовать способ получения списка с именами всех столбцов для сортировки в плагине jquery datatables.В настоящее время это только имя первого столбца, который должен быть отсортирован.

var sortingColumnName = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]")?[0] + "][name]")?[0];

Я не могу установить строку в Request.Form.GetValues.

Мне нужен, например, этот случай.:

"order": [[2, "asc"], [4, "desc"], [3, "desc"]]

Когда вы проверяете элементы, вы можете проверить, что в этом примере есть три ключа для заказа, , но могут быть и другие случаи, когда у вас больше или меньше ключей .

enter image description here

1 Ответ

1 голос
/ 18 мая 2019

Не используйте Request.Form. Проблема, с которой вы столкнулись в настоящее время, заключается в том, что вы пытаетесь вручную десериализовать опубликованные данные в какую-то полезную структуру данных. Привязка модели в ASP.NET MVC уже делает именно это.

Структура модели, которая работает для DataTables, будет выглядеть примерно так:

public class DataTablesRequestViewModel
{
    public int draw { get; set; }
    public int start { get; set; }
    public int length { get; set; }
    public IList<DataTablesOrder> order { get; set; } = new List<DataTablesOrder>();

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

Вы можете изменить / расширить / и т. Д. как вам нужно, но размещенная по умолчанию структура для DataTables должна соответствовать этому. Просто примите эту модель в действие вашего контроллера:

public ActionResult YourActionMethod(DataTablesRequestViewModel request)
{
    // in here you can get the list of sorted columns from: request.order
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...