MVC:使用Kendo()。Window加载PartialView时,出现错误“找不到资源”

时间:2018-08-06 19:06:37

标签: ajax model-view-controller kendo-asp.net-mvc kendo-window

我正在使用模式Kendo().Window()来在按钮单击时加载Partial View

我有一个主视图,比如说包含按钮的View1,用于显示一个窗口的代码,该窗口将加载包含Partial View的{​​{1}},并打开一个Kendo().Grid函数窗口:

这就是我的View1上的内容:

这是按钮:

javascript

这是一个显示@(Html.Kendo().Button() .Name("btnSubmit") .HtmlAttributes(new { type = "button"}) .Icon("k-icon k-i-file-txt") .Content("View Details") .Events(e => e.Click("DisplayDetailedView")) ) 内容的窗口:

PartialView

这是打开窗口的@(Html.Kendo().Window() .Name("ReportData") .Title("Details Report") .LoadContentFrom("RedirectToView", "MyController") .Modal(true) .Visible(false) .Width(800) .Height(375) .Position(p => p.Top(100).Left(800)) ) 函数:

javascript

我的function DisplayDetailedView() { var w = $("#ReportData").data("kendoWindow"); w.open(); } 有一个Kendo()。Grid,它从控制器调用方法来填充数据:

Partial View

当我加载View1时,应该在Grid初始化中调用的方法被调用,并且出现错误消息“

  

“找不到资源。

     

HTTP404。您要查找的资源(或其资源之一)   依赖项)可能已被删除,名称更改或   暂时不可用。请查看以下网址并进行   确保拼写正确。

     

请求的URL:/ MyController / GetReport”

看起来,页面正在尝试渲染我的@(Html.Kendo().Grid(Model.Report) ....... .DataSource(ds => ds .Ajax() .Read(read => read.Action("GetReport","MyController", Model)) ) ,并从窗口的Kendo().Window事件中调用控制器中的RedirectToView,以使用Grid < / p>

当我没有在View1内使用.LoadContentFrom而是在按钮单击上使用Partial View调用Kendo().Window方法时,该功能曾与引导模态方法一起使用:

Ajax

但是,我需要将其更改为RedirectToView

我该如何解决?

1 个答案:

答案 0 :(得分:0)

首先,RedirectToView应该返回部分视图-而不是重定向到该视图。

假设是这种情况,请在打开窗口时尝试加载内容。因此,首先,从窗口声明中删除.LoadContentFrom("RedirectToView", "MyController")

然后在您的javascript函数中:

function DisplayDetailedView() {
    var w = $("#ReportData").data("kendoWindow");
    w.refresh({
        url: '@Url.Action("RedirectToView", "MyController")'
    });
    w.open();
}

我还将更改您的ajax调用以使用@ Url.Action。我很困惑,但是为什么您要在这里调用RedirectToView?是POST还是返回部分消息或重定向?重定向会很糟糕-您需要在客户端进行操作。

function ShowReversalsDetailedView() {
    $.ajax(
        {
            url: '@Url.Action("RedirectToView", "MyController")',
            type: 'post',
            dataType: "html",
            contentType: 'application/json; charset=utf-8',
            success: function (result) {
                $(".modal-content").html(result);
            }
        })
}

请参见https://docs.telerik.com/kendo-ui/api/javascript/ui/window/methods/refresh