Передача выпадающего значения множественного выбора от Json на сторону сервера ActionResult - PullRequest
0 голосов
/ 24 января 2019

Я создал проект MVC. Мне нужно передать выбранные значения из выпадающего списка множественного выбора обратно в мой ActionResult со стороны сервера Json для возврата значений в Datatable.

Я уже могу фильтровать, используя один выпадающий список (#YesNO) и поле ввода (#filter_Name). Просто не уверен, что мне нужно сделать, чтобы выбрать несколько значений (#company) для возврата нужных мне данных. Так что это макетный проект, но в основном пользователь может выбрать несколько компаний. Если бы кто-то мог указать мне правильное направление, я был бы очень благодарен.

     public ActionResult GetList()
    {
        List<UserModel> usrModel = new List<UserModel>();
        usrModel = userViewModel.Index();

        var draw = Request.Form.GetValues("draw").FirstOrDefault();
        var start = Request.Form.GetValues("start").FirstOrDefault();
        var length = Request.Form.GetValues("length").FirstOrDefault();
        var sortCulmn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
        var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
        int pageSize = length != null ? Convert.ToInt32(length) : 0;
        int skip = start != null ? Convert.ToInt32(start) : 0;
        int totalRecords = 0;
         var userName = Request.Form.GetValues("columns[1][search][value]").FirstOrDefault();
        var userCompany = Request.Form.GetValues("columns[5][search][value]").FirstOrDefault();
         var userActive = Request.Form.GetValues("columns[6][search][value]").FirstOrDefault();
        if (!string.IsNullOrEmpty(userName))
        {
            usrModel = usrModel.Where(a => a.FriendlyName.ToLower().Contains(userName.ToLower())).ToList();
        }
        if (!string.IsNullOrEmpty(userActive))
        {
            usrModel = usrModel.Where(a => a.LoginAccepted == userActive).ToList();
        }
        if (!string.IsNullOrEmpty(userCompany))
        {
            usrModel = usrModel.Where(a => a.Company.Contains(userCompany)).ToList();
        }
        if (!(string.IsNullOrEmpty(sortCulmn + "" + sortColumnDir)))
        {
            usrModel = usrModel.OrderBy(sortCulmn + " " + sortColumnDir).ToList();
        }
        totalRecords = usrModel.Count();
        var data = usrModel.Skip(skip).Take(pageSize).ToList();
        return Json(new { draw = draw, recordsFiltered = totalRecords, recordsTotal = totalRecords, data = data }, JsonRequestBehavior.AllowGet);
    }

$(document).ready(function () {
var yesnoTable = $('#datatableCmp').DataTable({
"ajax": {
"url": "/Users/GetList",
"type": "POST",
"datatype": "json"
},
"columns": [
{ "data": "ID", "name": "ID" },
{ "data": "FriendlyName", "name": "FriendlyName" },
{ "data": "ContactNumber", "name": "ContactNumber" },
{ "data": "EmailAddress", "name": "EmailAddress" },
{ "data": "useDate_Birth", "name": "useDate_Birth" },
{ "data": "Company", "name": "Company" },
{ "data": "LoginAccepted", "name": "LoginAccepted" },
{ "data": "Action", "name": "Action" }
],
"serverSide": "true",
"processing": "true",
"orderMulti": "false"
});

oTable = $('#datatableCmp').DataTable();
$('#UsersearchButton').click(function () {
oTable.columns(1).search($('#filter_Name').val().trim());
oTable.columns(6).search($('#yesNo option:selected').text());
oTable.columns(5).search($('#company option:selected').text());
oTable.draw();
});

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...