首页 > 解决方案 > 如何将参数从 js 传递给直接事件 Url Action?

问题描述

有没有办法从 js 获取 objectId 参数并将其作为参数发送到 Url 操作?

JS:

function ButtonClick(objectId) {
    App.testID.fireEvent("click", objectId);
}

分机:

Html.X().ID("testID").DirectEvents
(
    de =>
    {
        de.Click.Url = Url.Action("TestMethod", "TestController");
        de.Click.ExtraParams.Add(new Parameter("objectId", "I need objectId here"));
    }
)

标签: javascriptc#ext.net

解决方案


当我在调试器中看到已编译的代码时,我提出了不同的解决方案。您可以像这样创建直接事件:

Html.X().ID("testID")
.Listeners
(
    l =>
    {
        l.AfterRender.Handler = @"App.testID.on('testEvent', function(id) {
                                                                             Ext.net.directRequest({
                                                                                url: '/TestController/TestMethod',
                                                                                extraParams:
                                                                                {
                                                                                    'objectId': id
                                                                                }
                                                                            });
                                                                        });";
    }
)

并使用:

function ButtonClick(objectId) {
    App.testID.fireEvent("testEvent", objectId);
}

推荐阅读