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

Ajax MVC:使用Kendo().Window加载PartialView时,出现错误;“找不到资源”;,ajax,model-view-controller,kendo-asp.net-mvc,kendo-window,Ajax,Model View Controller,Kendo Asp.net Mvc,Kendo Window,我使用modalKendo().Window()在单击按钮时加载局部视图 我有一个主视图,比如说包含按钮的View1,代码显示一个窗口,其中包含Kendo()的部分视图。网格将被加载,还有一个打开窗口的javascript函数: 这是我在View1上看到的内容: 这是按钮: @(Html.Kendo().Button() .Name("btnSubmit") .HtmlAttributes(new { type = "button"})

我使用modal
Kendo().Window()
在单击按钮时加载
局部视图

我有一个主视图,比如说包含按钮的View1,代码显示一个窗口,其中包含
Kendo()的
部分视图
。网格
将被加载,还有一个打开窗口的
javascript
函数:

这是我在View1上看到的内容:

这是按钮:

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

@(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()。该网格从控制器调用一个方法来填充数据:

@(Html.Kendo().Grid(Model.Report)
  .......
  .DataSource(ds => ds
      .Ajax()
      .Read(read => read.Action("GetReport","MyController", Model))

)
当我加载View1时,应该在网格初始化时调用的方法被调用,我得到的错误是“

“找不到资源

HTTP 404。您正在寻找的资源(或其 依赖项)可能已被删除、名称已更改或 暂时不可用。请查看下面的URL并进行修改 确保它拼写正确

请求的URL:/MyController/GetReport“

看起来,页面正在尝试呈现my
Kendo().Window
,从
调用控制器中的
RedirectToView

当我没有在View1内部使用
Kendo().Window
,而是在按钮上使用
Ajax
调用时,用于使用引导模式方法的功能单击名为
RedirectToView
的方法:

function ShowReversalsDetailedView() {
    $.ajax(
        {
            url: "/MyController/RedirectToView/",
            type: 'post',
            dataType: "html",
            contentType: 'application/json; charset=utf-8',
            success: function (result) {
                $(".modal-content").html(result);
            }
        })
}
但是,我需要将其更改为
Kendo().Window()


如何修复它?

首先,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?这是一篇文章还是返回了部分内容还是重定向?重定向会很糟糕-您需要在客户端这样做

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);
            }
        })
}

请参见

从您的错误中,您的问题似乎与网格有关,对吗?我的意思是,如果您删除网格并在局部视图中写入内容,这是否正确打开?