Ajax MVC:使用Kendo().Window加载PartialView时,出现错误;“找不到资源”;
我使用modalAjax 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"})
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“
看起来,页面正在尝试呈现myKendo().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);
}
})
}
请参见从您的错误中,您的问题似乎与网格有关,对吗?我的意思是,如果您删除网格并在局部视图中写入内容,这是否正确打开?