我正在使用模式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
我该如何解决?
答案 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