【发布时间】:2013-04-11 11:42:39
【问题描述】:
我有一个 MVC3 项目,我在其中创建了一个动态 jQuery DataTable。我在我的表中添加了一个名为“GetDataFunc”的自定义属性,其中包含控制器端的操作名称。 我想在定义 DataTable 时使用此属性的值,但 @Url.Action 不接受第一个参数中的参数(与字符串相反)。
我的代码:
var table = document.getElementById('UsersTbl');
if (table.hasAttribute("GetDataFunc")) {
var func = table.GetDataFunc;
var oTable = $('#MyTbl').dataTable({
"bServerSide": true,
"sAjaxSource": '@Url.Action(func, "MyPages")',
"bProcessing": true,
"aoColumns": cols,
"oLanguage": { "sSearch": "Search all columns:" },
"fnDrawCallback": function (oSettings) {
totalRecords = oSettings.fnRecordsDisplay();
}
});
}
当我尝试运行我的程序时,我得到:
当前上下文中不存在名称“func”
如何动态定义在控制器端调用哪个函数?
谢谢
【问题讨论】:
-
为什么不能只使用字符串?如果您知道方法名称,请将其与
Url.Action一起使用。 -
因为我不知道。我将从外部 XML 文件中获取函数名称。正如我所说,它是一个动态数据表。你是对的,如果我只有一个表格,就不会有这样的问题,但如果我有多个表格,我将无法判断我应该调用哪个函数。
标签: asp.net-mvc-3 datatables dynamic-programming