我有一个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”
如何动态定义在控制器端调用哪个函数?
由于
答案 0 :(得分:0)
您正在尝试混合使用JavaScript和C#。不。
而不是'@Url.Action(func, "MyPages")'
只使用javascript来确定您需要去的网址。在一天结束时@Url.Action
为您生成一个带控制器/操作的URL的字符串。