【问题标题】:Dynamically set the action name in MVC3 cshtml在 MVC3 cshtml 中动态设置动作名称
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2023-03-16
    • 2010-12-10
    • 1970-01-01
    • 2018-05-22
    • 2013-08-05
    相关资源
    最近更新 更多