从Kendo UI窗口向控制器传递数据,数据为空

时间:2015-03-18 15:13:06

标签: jquery asp.net-mvc kendo-ui

所以,我试图将数据传递给控制器​​动作,并且即使在调用之前填充数据中的调试时它也会一直空着。我真的不确定我做错了什么。我试过把它变成一个帖子而不是一个get,我试过不使用url.action并只是放入完全限定的路径。

以下是视图中的代码。

function openWindow() {
        var grid = $("#AjaxGrid").data("kendoGrid");
        var selectedData = grid.dataItem(grid.select());
        var stringData = JSON.stringify(selectedData);

        var window = $("#UserDetailDiv").data("kendoWindow");
        var PopUpTitle = "User Detail: ";

        window.setOptions({
            title: PopUpTitle,
            content: "Loading....."
        });

        window.refresh({
            url: "@Url.Action("UserDetail", "Inquiry")",
            data: {
                userString: stringData,
                directCall: "T"
            },
            error: function (xhr, textStatus, exceptionThrown) {
                window.close();
                alert($.parseJSON(xhr.responseText));
            }
        });
        window.open();
        window.center();
    }

这是行动的签名。

    <ViewModelActionFilter> _
    Public Function UserDetail(userString As String, directCall As String) _

1 个答案:

答案 0 :(得分:4)

我得到了一个帖子。问题是当使用kendo窗口并设置iFrame:true时,它会阻止帖子。我删除它,现在它工作得很好。 之前:

@(Html.Kendo().Window().Name("UserDetailDiv") _
.Title("User Details") _
.Visible(False) _
.Modal(True) _
.Height(500) _
.Draggable(True) _
.Width(900) _
.iframe(true)

后:

@(Html.Kendo().Window().Name("UserDetailDiv") _
.Title("User Details") _
.Visible(False) _
.Modal(True) _
.Height(500) _
.Draggable(True) _
.Width(900)

刷新代码:

        function openDetailWindow() {
        var grid = $("#AjaxGrid").data("kendoGrid");
        var selectedData = grid.dataItem(grid.select());
        var stringData = JSON.stringify(selectedData);

        var window = $("#UserDetailDiv").data("kendoWindow");
        var PopUpTitle = "User Detail: ";

        window.setOptions({
            title: PopUpTitle,
            content: "Loading....."
        });

        window.refresh({
        url: "../Inquiry/UserDetail",
        type: "POST",
        data: { userData: stringData, directCall: "T" }
        });
        window.open();
        window.center();
    }