1
我有一个MVC3项目,我在其中创建了一个动态jQuery DataTable。我在我的表中添加了一个名为“GetDataFunc”的自定义属性,其中包含控制器端的操作名称。 我想在定义DataTable时使用此属性的值,但@ Url.Action不会接受第一个参数中的参数(与字符串相反)。在MVC3中动态设置动作名称cshtml
我的代码:
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();
}
});
}
当我尝试运行我的程序,我得到:
名称“功能”不会在目前情况下存在
如何动态定义哪个函数调用控制器端?
谢谢
为什么你不能只使用一个字符串?如果您知道方法名称,则使用它与'Url.Action'。 – 2013-04-11 11:50:51
因为我不知道。我将从外部XML文件中获取函数名称。正如我所说,这是一个动态数据表。你是对的,如果我在页面上只有一个表格,就不会有这样的问题,但是如果我有多个表格,我将无法知道应该调用哪个函数。 – 2013-04-14 07:06:08