C# MVC模式 404 500页面设置方法

<customErrors mode="On" defaultRedirect="Controllers/Action">     <error statusCode="403" redirect="Controllers/Action" />
     <error statusCode="404" redirect="Controllers/Action" />
</customErrors>
这里不是对应你想转到的页面而是你所想跳转的某个Controllers 中的某个Action

方法二:

protected void Application_EndRequest()
{
        var statusCode = Context.Response.StatusCode;
        var routingData = Context.Request.RequestContext.RouteData;
        if (statusCode == 404 || statusCode == 500)
        {
           Response.Clear();
           var area = DataHelper.ConvertTo(routingData.DataTokens["area"], string.Empty);
           if (area == "Admin")
           {
                Response.RedirectToRoute("Admin_Default", new { controller = "BackError", action = "NotFound", IsReload = 1 });
           }
           else
           {
                Response.RedirectToRoute("Default", new { controller = "Error", action = "NotFound", id = UrlParameter.Optional });
           }

       }
}

方法三:

Global.aspx.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new CustomHandlerErrorAttribute());
}  

CustomHandlerErrorAttribute.cs

public class CustomHandlerErrorAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        if (filterContext.ExceptionHandled)
        {
            return;
        }  

        filterContext.Controller.ViewData.Model = filterContext.Exception;  

        filterContext.Result = new ViewResult
        {
            ViewName = "Error",
            ViewData = filterContext.Controller.ViewData
        };  

        filterContext.ExceptionHandled = true;
    }
}  

web.config <system.web>

<customErrors mode="On">
  <error redirect="/home/error" statusCode="404" />
</customErrors>  

web.config  <system.webServer>

<httpErrors errorMode="Custom" existingResponse="PassThrough">
</httpErrors>  

Error.cshtml

<div class="box">
    @{  

        var exception = ViewData.Model;
        var statusCode = exception == null ? 404 : 500;
        Response.StatusCode = statusCode;
        if (statusCode == 404)
        {
            <h3>404 Page not found!</h3>
            <p>没有找到该网页!</p>
        }
        else if (statusCode == 500)
        {
            <h3>500 程序异常</h3>
            <p>@exception.Message</p>
        }
    }
    <p style="font-size: 12px; color: Gray">请使用浏览器的后退功能已保证您填写的数据没有丢失!</p>
</div>  

时间: 2024-10-12 08:43:45

C# MVC模式 404 500页面设置方法的相关文章

spring MVC模式拦截所有入口方法的入参出参打印

import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.

启动Activity时的方法调用(应用层)(MVC模式)

一,从桌面启动应用 从桌面启动一个应用其实质也是从一个Activity中启动另一个Activity,比如官方的实例代码中: android/platform_packages_apps_launcher /** * 点击桌面图标启动Intent指向的Activity * * @param v The view representing the clicked shortcut. */ public void onClick(View v) { Object tag = v.getTag();//

ios 深刻理解MVC模式—代理方法

在oc中MVC模式得到广泛应用,所谓MVC,即模型Model,视图View,控制器Controller 控制器通过模型数据控制视图,而代理方法则是控制器控制视图的所使用的方法. 使用代理所需要满足的条件: 1.代理协议:里面声明了代理方法 2.视图View定义满足代理协议的代理属性,例如 @property(nonatomic,weak)id<UITableViewDelegate>delegate; 3.给View提供一个或几个方法,方法内View的代理view.delegate 调用它的代

MVC模式开发图书商城项目分析

MVC模式开发图书商城项目分析 1. 功能分析 1.用户注册 2.用户登录 3.添加商品(CURD) 4.商品查看-- 列表查询 5.商品详情页面 6.将商品添加购物车 7.查看购物车 8.修改购物车 9.生成订单 10.订单查看(取消) 11.在线支付 12.下载销售榜单 游客(未登录): 注册.登陆.商品查看 商城注册用户 : 商品查看.添加商品到购物车.购物车管理.生成订单.订单管理.在线支付 管理员 : 添加商品.商品管理.查看订单 .榜单查看(导出) 2. 系统设计 1技术选型 (系统

【Unity】基于MVC模式的背包系统 UGUI实现

本文基于MVC模式,用UGUI初步实现了背包系统. 包含点击和拖拽两种逻辑,先献上源代码,工程和分析稍后补充. Model 层 using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; /// <summary> /// 脚本功能:MVC模式--Model层,定义物品结构,保存物品数据 /// 添加对象:Bag 背包(Canvas下的空对象) ///

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该

IOS常用设计模式——MVC模式(IOS开发)

Cocoa Touch中的MVC模式中,模型和视图不能进行通信,所有通信都是控制器完成. - 模型:是个较为特殊的对象,本质是视图的数据,Text Field输入的内容,Button上的标签都是模型,不一定非要创建一个模型类. - 视图:UIView,这个比较容易理解,向控制器发送请求. - 控制器:更新视图作为对用户请求的回应,更新模型的数据. 模型里面就是数据,视图就是个界面,控制器是中间的更新媒介. 1.触摸myButton时候,会触发方法. 2.视图控制器实现了一些委托和数据源的协议.

MVC模式介绍

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现

用户管理系统网站框架改进之MVC模式

从之前的用户管理系统中我们会发现,JSP主要是做界面的,但却用了JSP来对用户进行验证和分页处理,而Servlet处理页面的转跳是最快捷和最方便的,所以对用户管理系统的框架进行了改进,使用MVC模式. MVC是一种设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分为三个核心部件:模型.视图和控制器.它们各自处理自己的任务. MVC的各个字母分别是M(model模型).V(view视图)和C(controller控制器) M主要由Java class来处理,也可以是Jav