急在线等!!!.net中 easyui在mvc过滤器处理报错时怎么跳回到登录界面

qinjipan 2015-10-21 09:58:19
.net中 easyui在mvc过滤器处理报错时怎么跳回到登录界面
我用mvc的过滤器做了一个全局的异常处理,前台是用的easyui框架,报错后想跳回登录界面,可是一直跳转不出去求大神帮忙解决
跳转方法:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new LoginCheckFilterAttribute() { IsCheck = true });//判断是否登录
filters.Add(new MyHandleErrorAttribute());//新建全局的异常处理
}
}
///
/// 处理异常
///
public class MyHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
string bcxx = filterContext.Exception.Message;//报错信息
string bcff = filterContext.Exception.TargetSite.ToString();//报错方法
string bcdx = filterContext.Exception.Source;//报错对象
string bcwz = filterContext.Exception.StackTrace;//引发异常位置
//PublicClass.AddLog("报错信息:"+bcxx+"报错方法:"+bcff+"报错对象:"+bcdx+"报错位置:"+bcwz, 1);//写入报错日志
string response_js = "<script>window.parent.location.href='~/html/Error.html';</script>";
filterContext.HttpContext.Response.Redirect("~/html/Error.html");//异常处理界面(友好界面)
//跳转到登陆页
//filterContext.HttpContext.Response.Write(response_js);

}
}
视图报错的效果:
/// <summary>
/// 职员信息视图
/// </summary>
/// <returns></returns>
public ActionResult WorkersInfo()
{
int a = 0;
int b = 1 / a;
return View();
}

独立方法的效果:
public string ces() {
int a = 0;
int b = 1 / a;
return "";
}

两种情况都不能直接跳回框架显示异常信息
...全文
227 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010862551 2017-02-17
  • 打赏
  • 举报
回复
要在js中写 你返回一个实体模型如:{statusid:1,msg:""} js检查状态id,如果为1就跳转到登入页,window.top.loca什么的
toger_c 2015-10-21
  • 打赏
  • 举报
回复
引用 8 楼 qinjipan 的回复:
引用 7 楼 qq394799572 的回复:
[quote=引用 5 楼 qinjipan 的回复:] [quote=引用 1 楼 qq394799572 的回复:] 不是没效果,是你用了ajax请求直接弹框出来了。
我就是想直接跳出去,直接通过我的异常提示界面回到登录界面,不要在框架里面。
那你就要想办法处理,在ajax请求返回的是整个Html结果,如果你直接返回0或1,用Js跳转页是可以的,如果你们这个要求不是很高的话。[/quote] 如果是视图界面报错根本就不会执行ajax直接就返回错误页面了,用js跳转在视图里面不得行,这种方法我试过了。[/quote] 两个方法,1:在错误页面加个定时器,x秒后自动跳转到登录页面。 2:不跳转到错误页面,直接返回Json,比如0或1,在ajax里面判断做跳转的处理。
qinjipan 2015-10-21
  • 打赏
  • 举报
回复
引用 7 楼 qq394799572 的回复:
引用 5 楼 qinjipan 的回复:
[quote=引用 1 楼 qq394799572 的回复:] 不是没效果,是你用了ajax请求直接弹框出来了。
我就是想直接跳出去,直接通过我的异常提示界面回到登录界面,不要在框架里面。
那你就要想办法处理,在ajax请求返回的是整个Html结果,如果你直接返回0或1,用Js跳转页是可以的,如果你们这个要求不是很高的话。[/quote] 如果是视图界面报错根本就不会执行ajax直接就返回错误页面了,用js跳转在视图里面不得行,这种方法我试过了。
toger_c 2015-10-21
  • 打赏
  • 举报
回复
引用 5 楼 qinjipan 的回复:
引用 1 楼 qq394799572 的回复:
不是没效果,是你用了ajax请求直接弹框出来了。
我就是想直接跳出去,直接通过我的异常提示界面回到登录界面,不要在框架里面。
那你就要想办法处理,在ajax请求返回的是整个Html结果,如果你直接返回0或1,用Js跳转页是可以的,如果你们这个要求不是很高的话。
qinjipan 2015-10-21
  • 打赏
  • 举报
回复
引用 4 楼 qq394799572 的回复:
filterContext.Result = Redirect(Url.Content("~/Account/Login"));
这里前面是不是还要写什么处理,不然报错提示不存在
qinjipan 2015-10-21
  • 打赏
  • 举报
回复
引用 1 楼 qq394799572 的回复:
不是没效果,是你用了ajax请求直接弹框出来了。
我就是想直接跳出去,直接通过我的异常提示界面回到登录界面,不要在框架里面。
toger_c 2015-10-21
  • 打赏
  • 举报
回复
filterContext.Result = Redirect(Url.Content("~/Account/Login"));
qinjipan 2015-10-21
  • 打赏
  • 举报
回复
引用 2 楼 jhdxhj 的回复:
既然用easyUI为什么还用MVC?
这不是我能决定的,领导要求这样弄,我也木有办法。
jhdxhj 2015-10-21
  • 打赏
  • 举报
回复
既然用easyUI为什么还用MVC?
toger_c 2015-10-21
  • 打赏
  • 举报
回复
不是没效果,是你用了ajax请求直接弹框出来了。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧