Jtable "listaction" url 总是调用带有旧参数值的动作控制器 MVC4 Jquery

Jtable "listaction" url always calling action controller with old parameters value MVC4 Jquery

  [HttpPost]
    public JsonResult StudentList(int id= 0, int id2= 0)
    {
        try
        {
            //Get data from database

            List<Student> students = _repository.StudentRepository.GetStudents(id,id2);

            //Return result to jTable
            return Json(new { Result = "OK", Records = students},JsonRequestBehaviour.AllowGet);
        }
        catch (Exception ex)
        {
            return Json(new { Result = "ERROR", Message = ex.Message },JsonRequestBehaviour.AllowGet);
        }
    }

我的jquery

  $("#DDL_id").change(function(){ 
//fill dropdown2 "DDL_idd"  by ajax via get json call

});

 $("#DDL_idd").change(function(){ 

   var id= $("#DDL_id").val();
   var idd= $("#DDL_idd").val();

   var url = '/admin/StudentList?id1=' +id + '&id2='+idd;

 $('#General_InfoTableContainer').jtable({
        title: 'General_Info List',
       actions: {
            listAction: url

        },
        fields: {
            RID: {
                key: true,
                create: false,
                edit: false,
                list: true,
                title: 'RID',
                width: '5%'
            },
            Quote: {
                title: 'Open Quote',
                list: true,
                width: '15%',


            },
            Customer_Name: {
                list: true,
                title: 'Customer',
                width: '25%'
            }

        }
    });

    //Load student list from server
    $('#General_InfoTableContainer').jtable('load');
});
 });

我第一次在我的控制器中获得两个下拉菜单的正确 ID,但之后如果我从下拉菜单中更改我的选择,我的操作没有获得新值并且它总是以旧值执行 "StudentList(int id1= 0, int id2= 0)" id1并且 id2 具有旧值并且不再重置 我已经完成

$.ajaxSetup({ cache: false });

 [Nocache] 

关于控制器动作和其他解决方案。请帮助。

你的问题是一个变量范围/闭包。

当创建 jTable 选项对象并将其传递给 jTable 构造函数时,url 中的任何值都被固定为 listAction。

您似乎正在尝试执行 "filter" 操作

只需将 listAction 设置为 url

的静态部分
listAction: '/admin/StudentList',

然后当您填充 table

$('#General_InfoTableContainer').jtable('load',{
                                        'id1':$("#DDL_id").val(),
                                        'id2':$("#DDL_idd").val()});