2013-04-08 4 views
2

Я пытаюсь интегрировать плагин jQuery DataTables в проект ASP.Net MVC. Я следую примеру here. Когда я запускаю только образец кода в тестовом проекте, все работает. Но когда я пытаюсь и отлаживаю его в своем реальном приложении, AjaxHandler даже не выполняется. Я что-то упускаю?ASP.Net MVC и jQuery DataTables проблема с плагином

Вот вызова JQuery код:

$(document).ready(function() { 

     $('#myDataTable').dataTable({ 
      "bServerSide": true, 
      "sAjaxSource": "/UX/AjaxHandler", 
      "bProcessing": true, 
      "aoColumns": [ 

       { 
        "sName": "ID", 
        "bSearchable": false, 
        "bSortable": false, 
        "fnRender": function (oObj) { 

         return '<a href=\"Details/' + oObj.aData[0] + '\">View</a>'; 
        } 
       }, 
       { "sName": "NAME" }, 
       { "sName": "ADDRESS" }, 
       { "sName": "TOWN" }, 

      ] 

     }); 
    }); 

</script> 

Тогда мой проводник;

public ActionResult AjaxHandler(jQueryDataTableParamModel param) 
    { 

     return Json(new 
     { 
      sEcho = param.sEcho, 
      iTotalRecords = 97, 
      iTotalDisplayRecords = 3, 
      aaData = new List<string[]>() { 
       new string[] {"1", "Microsoft", "Redmond", "USA"}, 
       new string[] {"2", "Google", "Mountain View", "USA"}, 
       new string[] {"3", "Gowi", "Pancevo", "Serbia"} 
       } 


     }, 
     JsonRequestBehavior.AllowGet); 


    } 
+0

Я помню, что это немного странно с данными Ajax, вам может понадобиться предоставить первую страницу данных, когда вы сначала визуализируете таблицу. – Peter

+0

Ничего не отображается на вкладке сети в инструментах разработчика в браузере? –

+0

Не в моем основном приложении. Если я запустил тот же самый код в новом проекте, тогда я получаю ответ Json на вкладке сети –

ответ

2

Если вызов этой точки зрения делается из другого контроллера, кроме УБ:

"sAjaxSource": "ux/AjaxHandler", 

Если вызов этой точке зрения сделан из УБ, то вам нужно всего лишь:

"sAjaxSource": "AjaxHandler", 

Дополнительная косая черта у вас перед ux вызывает ваше горе

Также я согласно нашей дискуссии Идентификатор на вашем столе был не таким, как ID, на который ссылался JS.

+0

Я тоже это пробовал, но не помог. Если я установил точку прерывания в AjaxHandler во время отладки, она даже не попадет. Я думаю, что это может быть что-то в скрипте, но не обязательно. –

+0

ActionResult - это «супер-набор» JsonResult, так что это не должно меняться. –

+0

См. Edit Это должно решить вашу проблему. – Robert

Смежные вопросы