【发布时间】:2019-12-03 13:15:36
【问题描述】:
使用剑道组合框时如何处理会话超时?
下面是我的剑道组合框的html代码
@(Html.Kendo().ComboBoxFor(model => model.PropertyName)
.AutoBind(true)
.Suggest(true)
.DataTextField("Text")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("ActionName", "ControllerName");
})
.ServerFiltering(true);
})
.Animation(false)
.Filter("contains")
.HighlightFirst(false)
)
当 read.Action 在控制器会话超时发生时调用,我已经编写了自定义属性来检查会话过期并使用以下代码返回 403 状态代码
if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Forbidden");
return;
}
这个返回的状态使用下面的代码在 layout.cshtml 页面中处理并重新加载页面以进入登录页面
$.ajaxSetup({
error: function (x, e) {
if (x.status == 403) {
window.location.reload();
}
}
});
它适用于所有 ajax 请求,但不适用于来自 kendo 组合框的 ajax 请求。请在剑道组合框 ajax 请求时帮我处理它。
【问题讨论】:
标签: c# jquery ajax kendo-asp.net-mvc