我们试图通过从Sql服务器提取数据来填充JQuery DataTable。 到目前为止,我能够在没有参数的情况下调用C#函数,但是当我尝试传递参数时,方法调用失败说“val.fn.apply不是函数”。如何将参数传递给C#函数?
这是用于创建数据表的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函数的调用。它在一个循环中。
<a href="#" onclick="getData('@(item.StaffID)')" style="cursor: pointer;">Select</a>
这是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 :(得分:0)
找到我的答案。将此fnServerParams: staffId,
更改为此
fnServerParams: function (d) {
d.push(
{ "name": "StaffId", "value": staffId }
)
},