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

问题描述

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

.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();
    }
            ![图片说明](http://img.ask.csdn.net/upload/201510/20/1445313489_414036.png)
            独立方法的效果:
            public string ces() {
        int a = 0;
        int b = 1 / a;
        return "";
    }![图片说明](http://img.ask.csdn.net/upload/201510/20/1445313657_186858.png)
            两种情况都不能直接跳回框架显示异常信息

解决方案

在客户端判断下ajax返回值是否包含过滤器抛出的错误内容,包含用location.href进行跳转,服务器端的跳转ajax请求后获取的是跳转后的内容,浏览器是不会自动跳转的

datagrid增加onLoadError事件

 $('#dg').datagrid({onLoadError:function(xhr){
  var s=xhr.responseText
  alert('服务器端返回内容:'+s);
    if(s.indexOf('超时异常错误信息,或者你的error.html中包含的特殊内容'))location='登录页面'
});
时间: 2024-08-03 16:37:43

easyui跳回登录界面-.net中 easyui在mvc过滤器处理报错时怎么跳回到登录界面的相关文章

怎么设置当打开某页面报错时自动跳转到另一页面?

问题描述 当加载数据时可能由于各种原因导致加载失败,这个时候会弹出代码错误页面,想自定义一个页面,出错后就直接跳转到定义的错误页面,求指导 解决方案 解决方案二:可能报错的地方的catch跳转呀解决方案三:这个跳转还要问啊..解决方案四:在config里设置一下,加个<customErrorsmode="On"defaultRedirect="Error.htm"/>,指定错误页面就可以.解决方案五:在config里设置一下,加个<customEr

namespace-struts2注解url没跳转到action里的方法,没报错也没跳转

问题描述 struts2注解url没跳转到action里的方法,没报错也没跳转 我补下图片: package com.AppServer.action; import javax.annotation.Resource; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ExceptionMapping; import org.apache

open-在VS2013中CFile的file.Open 点报错

问题描述 在VS2013中CFile的file.Open 点报错 求教各位,如题 代码如下: /*把位图文件读入内存*/ CFile File;//从CFile类中生成一个实例File if (!File.Open("e:8bitcol.bmp", CFile::modeRead)) return;//打开文件只读,打开成功返回非0值,否则返回0 就是这句中File.Open的.报错,报错信息为: no instance of overloaded function "CFi

Android 自定义dialog添加文字超链接,点击报错无法实现跳转

问题描述 Android 自定义dialog添加文字超链接,点击报错无法实现跳转 自定义dialog,添加文字超链接,点击超链接报错,同样方法,在activity中就能实现,什么原因?? 解决方案 Intent中加入这个试试: intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 解决方案二: 报错是报的什么错,, 解决方案三: 抓取log如下 01-01 02:49:07.928: E/InputEventReceiver(3774): Excepti

spring mvc-想把用户名存在session中 在方法中加request参数后运行报错 求指教~

问题描述 想把用户名存在session中 在方法中加request参数后运行报错 求指教~ 我用的是spring+hibernate~ 修改后: public class LoginAction extends SimpleFormController{ private Login login; private String viewPage; private String successPage; //实现onSubmit()方法 public ModelAndView onSubmit(Ob

c++-C++中一个cpp引用另一个cpp中的函数,为什么会报错?

问题描述 C++中一个cpp引用另一个cpp中的函数,为什么会报错? C++中一个cpp引用另一个cpp中的函数,为什么会报错? 解决方案 包含了没?重复包含了没? 解决方案二: 首先将要引用的cpp文件写出一个对应的头文件,相关的写法可以参照http://blog.sina.com.cn/s/blog_6d30debd0100sx16.html 这个网址给出的例子,写出对应的头文件后,在你的另一个cpp文件中#include就可以了. 解决方案三: A .cpp(148) : fatal er

wamp环境中,本可以使用GD库,但在zend中无法使用GD库,会报错这是为什么,出了什么问题

问题描述 wamp环境中,本可以使用GD库,但在zend中无法使用GD库,会报错这是为什么,出了什么问题 在zend中无法使用GD库,会报错提示GD库函数未定义 解决方案 http://blog.csdn.net/authorzhh/article/details/7566853 看看是不是扩展没有开 解决方案二: 扩展开了, extension=php_gd2.dll 前分号去掉了,还是没解决

mysql-java中的sql语句为何会报错,而到了workbench就可以执行

问题描述 java中的sql语句为何会报错,而到了workbench就可以执行 rt基本上是timestamp的格式,比如insert into table values ('2015-03-17 00:00:00');这句话在java通过jdbc执行就会报错,而直接在workbench下面操作就没有问题为什么会这样? 解决方案 可能是字符串单引号等引起的,打印代码中的字符串跟workbench中比较 解决方案二: insert into table(字段1,字段2....) value( 值1

compression-AIX中compress压缩一个小文件报错

问题描述 AIX中compress压缩一个小文件报错 AIX中compress压缩compression does not save space