在MVC3 cshtml中动态设置操作名称

时间:2013-04-11 11:42:40

标签: asp.net-mvc-3 datatables dynamic-programming

我有一个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”

如何动态定义在控制器端调用哪个函数?

由于

1 个答案:

答案 0 :(得分:0)

您正在尝试混合使用JavaScript和C#。不。

而不是'@Url.Action(func, "MyPages")'只使用javascript来确定您需要去的网址。在一天结束时@Url.Action为您生成一个带控制器/操作的URL的字符串。