2016-04-02 10 views
0

Sqlサーバーからデータを取得してJQuery DataTableを作成しようとしています。 これまでは、パラメータなしでC#関数を呼び出すことができましたが、パラメータを渡そうとすると、メソッド呼び出しは失敗しました。「val.fn.applyは関数ではありません」。どのようにC#関数にパラメータを渡すことができますか?DataTable AjaxSourceからパラメータを渡すには?

ここに、データテーブルを作成するJquery関数があります。前述のように、パラメータ(staffId)なしで動作しますが、fnServerParamsプロパティでは失敗します。

function getData(staffId) { 
    $('#gridStaffDetails').dataTable({ 
     processing: true, 
     ajaxSource: '@Url.Action("GetStaffPositions", "UserAccount")', 
     fnServerParams: staffId, 
     destroy: true, 
     paging: false, 
     filter: false, 
     autoWidth: false, 
     sort: false 
    }); 
}; 

ここはJavascript関数の呼び出しです。ループ内にあります。

ここにはC#ActionResultメソッドがあります。

 [HttpGet] 
    public ActionResult GetStaffPositions(int staffId) 
    { 
     try 
     { 
      // get staff positions for the given staffId from new view 
      List<StaffPositionsTitleView> staffPositionsTitleViewList = _service.GetStaffPositionsTitleViewList(staffId); 
      List<StaffPosition> staffPositionList = new List<StaffPosition>(); 

      // map new view to List<StaffPosition> 
      staffPositionList = AutoMapper.Mapper.Map<List<StaffPositionsTitleView>, List<StaffPosition>>(staffPositionsTitleViewList); 

      return Json(new 
      { 
       data = staffPositionList.Select(x => new object[] { x.StaffId, x.Title }) 
      }, JsonRequestBehavior.AllowGet); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

答えて

0

私の答えが見つかりました。変更されましたfnServerParams: staffId,これは

fnServerParams: function (d) { d.push( { "name": "StaffId", "value": staffId } ) },

関連する問題