You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Kendo UI对话框操作按钮方法传递参数

向Kendo UI对话框操作方法传递参数的解决方案

你当前代码的问题是传递参数时没有给字符串加引号,导致页面渲染后JS会把delete识别为关键字而非字符串参数,所以无法正确触发方法并传递值。下面是几种可行的解决方案:

方案一:修正字符串拼接(最简单直接)

在拼接Action方法的调用字符串时,给后端变量加上单引号,确保渲染后JS能识别为字符串参数:

@{
    var action_name = "delete";
}

@(Html.Kendo().Dialog()
    .Name("dialog")
    .Title("Software Update")
    .Actions(actions => {
        actions.Add().Text("Ok");
        // 给action_name前后加上单引号,确保传递的是字符串
        actions.Add().Text("Cancel").Action("onCancel('" + action_name + "')");
    })
)

<script type="text/javascript">
    function onCancel(action_name) {
        alert(action_name); // 此时会正确弹出"delete"
    }
</script>

方案二:通过HTML属性传递参数(更灵活)

不给按钮直接绑定Action,而是通过HtmlAttributes给按钮添加自定义属性,再用JS绑定点击事件:

@{
    var action_name = "delete";
}

@(Html.Kendo().Dialog()
    .Name("dialog")
    .Title("Software Update")
    .Actions(actions => {
        actions.Add().Text("Ok");
        // 添加自定义data属性存储参数
        actions.Add().Text("Cancel").HtmlAttributes(new { data_action = action_name });
    })
)

<script type="text/javascript">
    // 绑定按钮点击事件
    $(document).on("click", "[data-action]", function() {
        var actionName = $(this).data("action");
        alert(actionName);
        // 手动关闭对话框
        $("#dialog").data("kendoDialog").close();
    });
</script>

方案三:使用对话框的Action事件(官方推荐)

利用Kendo对话框的Action事件,统一处理按钮点击逻辑,同时可以直接在JS中获取后端传递的变量:

@{
    var action_name = "delete";
}

@(Html.Kendo().Dialog()
    .Name("dialog")
    .Title("Software Update")
    .Actions(actions => {
        actions.Add().Text("Ok");
        actions.Add().Text("Cancel");
    })
    // 绑定对话框的Action事件
    .Events(e => e.Action("onDialogAction"))
)

<script type="text/javascript">
    // 直接将后端变量赋值给JS变量
    var targetAction = "@action_name";

    function onDialogAction(e) {
        // 判断点击的是哪个按钮
        if(e.text === "Cancel") {
            alert(targetAction);
            // 如果需要阻止对话框默认关闭行为,可调用e.preventDefault()
            // e.preventDefault();
        }
    }
</script>

内容的提问来源于stack exchange,提问作者user1263981

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:06:05