MVC kendo 窗口 - 从 JavaScript 函数获取数据

2023-12-24

我的应用程序中有这个剑道窗口

Html.Kendo().Window()
    .Name("copyStructure")
    .Title("Copy Structure")
    .Content("Loading...")
    .LoadContentFrom("CopyStructure", "NewXmlLayout") // <-- here*
    .Draggable(false)
    .Visible(false)
    .Modal(true)
    .Actions(s => s.Custom(""))
    .Events(e => e.Open("openWindow").Close("closeWindow"))

我试图将数据传递到由 JavaScript 函数返回的 LoadContentFrom() 中的操作,但我不知道该怎么做。我可以这样传递数据:

.LoadContentFrom("CopyStructure", "NewXmlLayout", new { type= "INPUT" })

但这不是我要找的。

JS函数:

function getInfo() {
        return { type: "INPUT" };
    };

我的控制器:

 public ActionResult CopyStructure(string type)
    {
        return PartialView();
    }

如果您确实需要通过 JavaScript 访问您的数据getInfo()函数,那么执行此操作的方法是像您正在做的那样定义窗口,但在打开窗口之前不要设置内容。打开窗口时,使用jQuery.ajax()打电话CopyResult,通过结果getInfo()进入数据参数。

在你的剃须刀中,取出LoadContentFrom添加一个事件处理程序Open event:

@(Html.Kendo().Window()
    .Name("copyStructure")
    // Omitted for brevity
    ...
    .Events(e => e.Open("copyStructure_Open"))
)

在 JavaScript 的处理程序中,调用$.ajax并在success回调,调用content传递返回值的 Window 对象上的方法data作为参数:

function copyStructure_Open(e) {
    $.ajax({
        url: '@Url.Action("CopyStructure", "NewXmlLayout")',
        type: 'POST',
        data: getInfo(),
        success: function(data) {
            e.sender.content(data);
        }
    });
}

请注意,仅发送窗口内容所需的内容,而不是完整的页面(DOCTYPE、html、head、body) - 请参阅 Telerik 的此文档:http://docs.telerik.com/kendo-ui/getting-started/web/window/overview#loading-window-content-via-ajax http://docs.telerik.com/kendo-ui/getting-started/web/window/overview#loading-window-content-via-ajax

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC kendo 窗口 - 从 JavaScript 函数获取数据 的相关文章

随机推荐