Я хочу получить данные и отобразить их в формате jquery в asp.net.Я получаю метод ошибки не найден (404) , но мой метод уже находится в контроллере.Я проверил другие решения, но не могу найти решение.
Мой код выглядит следующим образом:
Код Jquery:
$(document).ready(function() {
$("#kt_table_1").DataTable({
"oLanguage": {
"sZeroRecords": "No records to display",
},
"bProcessing": true,
"bServerSide": true,
"searching": false,
"bDestroy": true,
"bAutoWidth": false,
"lengthMenu": [[10, 20, 30], [10, 20, 30]],
"sAjaxSource": "@Url.Action("GetUsersList","UserProfile")",
"fnServerParams": function (aoData) {
aoData.push({ "name": "searchdata", "value": "" });
perm = aoData;
},
"fnServerData": function (sSource, aoData, fnCallback, oSettings) {
oSettings.jqXHR = $.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aoData,
"success": fnCallback,
"timeOut": 10000
});
},
"sPaginationType": "full_numbers",
"bDeferRender": true,
"aoColumns":
[
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "sName": "UserId", "bSearchable": false, "bSortable": false, "width": "25px" },
{ "sName": "UserName", "bSearchable": true, "bSortable": true },
{ "sName": "UserEmail", "bSearchable": true, "bSortable": true },
{ "sName": "UserMobileNo", "bSearchable": true, "bSortable": true },
{ "sName": "UserStatus", "bSearchable": true, "bSortable": true },
// { "sName": "Action", "bSearchable": false, "bSortable": false, "className": "icn" }
],
"sAjaxSource": "@Url.Action("GetUsersList","UserProfile")",
"order": [[2, "desc"]]
});
});
Вызов метода контроллера из таблицы данных:
private async Task<IActionResult> GetUsersList(string sEcho, int iDisplayStart, int iDisplayLength, int iSortCol_0, string sSortDir_0, string sColumns, string searchdata)
{
JQueryDataTableParamModel parm = new JQueryDataTableParamModel();
parm.sEcho = sEcho;
parm.iDisplayStart = iDisplayStart;
parm.iDisplayLength = iDisplayLength;
parm.sSortDir_0 = sSortDir_0;
var sColumnsArray = sColumns.Split(',');
string sortColumn = "";
if (sColumnsArray.Length > 0 && sColumnsArray.Length >= iSortCol_0)
sortColumn = Convert.ToString(sColumnsArray[iSortCol_0]);
try
{
IEnumerable<string[]> Adminusers = Enumerable.Empty<string[]>();
if (!String.IsNullOrEmpty(parm.sSearch))
{
parm.sSearch = parm.sSearch.Replace("'", "''");
}
ApiClient apiClient = new ApiClient(apiUrl);
var requestUrl = apiClient.CreateRequestUri(string.Format(System.Globalization.CultureInfo.InvariantCulture,"UsersApi/GetUsersList"));
List<UserProfile> obj= await Client.GetAsync<List<UserProfile>>(requestUrl);
List<UserProfile> lstusersModel = new List<UserProfile>();
foreach (var item in obj)
{
UserProfile objusersModel = new UserProfile();
objusersModel.UserId = item.UserId;
objusersModel.UserName = item.UserName.ToString();
objusersModel.UserEmail = item.UserEmail.ToString();
objusersModel.UserMobileNo = item.UserMobileNo.ToString();
objusersModel.UserStatus = item.UserStatus;
lstusersModel.Add(objusersModel);
}
Adminusers = from c in lstusersModel
select new string[] {
c.UserId.ToString(),
"<input type='checkbox' name='checkexportId' id='"+ c.UserId +"' Class='checkexportclass' />",
c.UserName.ToString(),
c.UserEmail.ToString(),
c.UserMobileNo.ToString(),
c.UserStatus.ToString(),
};
int noOfRecoreds = 10;
return Json(new
{
sEcho = parm.sEcho,
iTotalRecords = obj.Count,
iTotalDisplayRecords = noOfRecoreds,
aaData = Adminusers
});
}
catch
{
throw;
}
}
Пожалуйста, проверьте код выше.Пожалуйста, предложите мне, если я делаю какую-либо ошибку или любой другой способ вызова асинхронного метода задачи из jquery datatable.
Ваша помощь будет по достоинству оценена.Заранее спасибо!