简体   繁体   中英

How to invoke ajax call in jQuery DataTable using ASP.NET MVC

I'm using jQuery DataTables 1.10.13 plugin for awhile now. I have stumbled upon this issue which is related with ajax data source for my html table.

jQuery DataTable initialization inside Files.cshtml

<script language="javascript" type="text/javascript">
$(document).ready(function () {
    var oTable = $("#tblFile").DataTable({
        "iDisplayLength": 10,
        "bServerSide": true,
        "sAjaxSource": "@Url.Content("PlayListFilesAjaxHandler")" + "?playListId=" + getParameter(),
        "bProcessing": true,
        "bStateSave": true,
        "aoColumns": [
            {
                "sName": "FileName",
                "bSearchable": true,
                "bSortable": true,
                "sWidth": '25%'
            },
            {
                "sName": "FilePath",
                "bSearchable": true,
                "bSortable": true,
                "sWidth": '50%'
            },
            {
                "sName": "Order",
                "bSearchable": true,
                "bSortable": true,
                "sWidth": '10%'
            },
            {
                "sName": "Action",
                "bSearchable": false,
                "bSortable": false,
                "sWidth": '15%',
                "render": function (data, type, full, meta) {
                    return '<a class="btn btn-primary deleteButton" href=\"FileDelete/' + full[3] + '\">Delete</a>';
                }
            }
        ]
    });
});

I wondered if this is the correct way of calling ajax request with a parameter? Because, the PlayListFilesAjaxHandler method is not triggered after Files action result is invoked.

"sAjaxSource": "@Url.Content("PlayListFilesAjaxHandler")" + "?playListId=" + getParameter(),

This is the Files action result method and parameters of PlayListFilesAjaxHandler inside the home controller class

        [Authorize]
        public ActionResult Files()
        {
            return View();
        }    

        public ActionResult PlayListFilesAjaxHandler(string playListId, JQueryDataTableParamModel param)
        { ... }

This is the structure of html table

<table id="tblFile" class="table table-responsive">
<thead>
    <tr>
        <th>
            File Name
        </th>
        <th>
            File Path
        </th>
        <th>
            Sequence
        </th>
        <th>
            Action
        </th>
    </tr>
</thead>
<tbody></tbody></table>

Any help is greatly appreciated.

if you didn't use api controller, try to return with json result.

public JsonResult PlayListFilesAjaxHandler(string playListId,JQueryDataTableParamModel param) {

return Json(IEnumerable);

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM