首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET MVC5如何捕获所有的System.NullReferenceExceptions并重定向到一个视图,这样我的程序就不会崩溃?

在ASP.NET MVC5中,可以通过使用全局过滤器来捕获所有的System.NullReferenceExceptions并重定向到一个视图,从而避免程序崩溃。

首先,创建一个自定义的全局过滤器类,继承自HandleErrorAttribute类,并重写OnException方法。在OnException方法中,判断异常类型是否为System.NullReferenceException,如果是,则重定向到指定的视图。

代码语言:txt
复制
public class CustomExceptionFilter : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        if (filterContext.Exception is NullReferenceException)
        {
            filterContext.ExceptionHandled = true;
            filterContext.Result = new ViewResult
            {
                ViewName = "NullReferenceError", // 重定向到的视图名称
                ViewData = filterContext.Controller.ViewData,
                TempData = filterContext.Controller.TempData
            };
        }
    }
}

然后,在Global.asax.cs文件中注册这个全局过滤器。在Application_Start方法中,添加以下代码:

代码语言:txt
复制
protected void Application_Start()
{
    // ...

    GlobalFilters.Filters.Add(new CustomExceptionFilter());
}

接下来,创建一个名为"NullReferenceError.cshtml"的视图文件,用于显示捕获到的NullReferenceException的错误信息。

最后,根据具体的业务需求,在视图文件中进行错误信息的展示和处理。

这样,当发生System.NullReferenceException时,程序会自动捕获并重定向到指定的视图,从而避免程序崩溃。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云云数据库MySQL、腾讯云云原生容器服务(TKE)等。您可以通过腾讯云官方网站获取更详细的产品介绍和相关文档。

腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET MVC5高级编程——(3)MVC模式模型

在这里我们要讨论是那些发送信息数据库,执行业务计算,并在视图中渲染模型对象。也就是说这些对象代表着应用程序关注域,模型就是要显示、保持、创建、更新和删除对象。...基架知道如何命名控制器、命名视图以及每个组件需要执行什么代码,也知道在应用程序如何放置这些项以使应用程序正常工作。...新建ASP.NET MVC5项目会自动包含对实体框架(EF)引用。...4.3播种数据库 很多时候,我们在编写程序同时需要测试,但此时数据库中没有数据,此时可以创建一个DropCreateDatabaseAlways派生类并重写其中Seed方法,Seed方法可以为应用程序创建一些初始化数据...在sad path中,控制器操作需要重新创建Edit视图,以便用户更改自身产生错误,而ASP.NET MVC5默认提供了客户端校验,如图所示: ?

4.7K40
  • 再说表单验证,在Web Api中使用ModelState进行接口参数验证

    《[Asp.net MVC]Asp.net MVC5系列--在模型中添加验证规则》。...但是在WebApi中没有视图页让我们来展示错误信息,那要怎么捕获到验证失败信息并作为请求结果返回给请求端呢?...,如果这个被验证字段至少有一项验证失败(ModelError),那么就拿到第一个ErrorMessage,然后就结束遍历,因为取到所有的也没什么用,也方便前端对结果进行处理。...当然了,这个Attribute指定了使用范围包含Class,直接打在Controller上面也是阔以滴~这样就不用每个Action都写了。...写在最后 没有上一篇分享,就不会收到大家建议,也许就不会有这次实践,所以,分享就意味着收获!

    2.3K50

    一步一步创建ASP.NET MVC5程序(五)

    前言 Hi,大家好,是Rector 时间飞逝,一个星期又过去了,今天还是星期五,Rector在图享网继续跟大家分享系列文本:一步一步创建ASP.NET MVC5程序[Repository+Autofac...+Automapper+SqlSugar] 上一篇《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](四)》,我们完成了: 创建服务层...简单来说,AutoMapper是以.NET(C#)语言开发一个轻量处理一个实体对象一个实体对象之间映射关系组件库。...AutoMapper配置 为了解决方案目录结构更加清晰,这里把视图实体放到了一个单独项目中。...如果遇到问题,欢迎加入图享网官方QQ群:483350228 本文首发于 图享网 《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]

    1.7K100

    一步一步创建ASP.NET MVC5程序(十)

    前言 朋友们, 大家好,还是Rector,写ASP.NET MVC 5系列文章 [一步一步创建ASP.NET MVC5程序Repository+Autofac+Automapper+SqlSugar...ASP.NET MVC 5 WEB应用程序开发,我们通常使用视图引擎为:Razor,这个视图引擎母版页面默认位于网站目录[/Views/Shared/_Layout.cshtml]中,在具体视图页面中...MVC 5 系列文章教程--首页"; 之前样式文件引用、脚本文件引用等等都没有了,这样修改之后,现在首页内容将会动态地渲染母版页面的@RenderBody() 标记位置。...(就站一旁看着,不说话) 好了,Rector把母版页和部分视图给大家作了一个初步分享,接下来我们把文章详情页面也应用上母版页。...https://2sharings.com 一个.NET编程爱好者社区,专注.NET/C#开发,帮助你找到疑难问题更优美、更高级解决方案 本文首发自 图享网 《一步一步创建ASP.NET MVC5程序

    1.9K110

    一步一步创建ASP.NET MVC5程序(一)

    大家好,是Rector 从今天开始,Rector将为大家推出一个关于创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]文章系列,和大家一起一步一步地创建...本系列涉及 主题 本系列文章将围绕如何ASP.NET MVC 5创建一个简易博客系统为主题展示,系列中设计思想和数据库、表设计也以此展开。...Visual Studio 开发工具,所以在本文及以后文章中,所有的IDE菜单及程序报错信息可能是英文,请你自行翻译转换成对应中文,谢谢你理解。...好了,这里本系列第一篇文章—搭建ASP.NET MVC 5 Web应用程序基础解决方案框架结构就完成了。希望你喜欢!!!...://github.com/lampo1024/TsBlog/tree/v1.0 本文同步发表至 图享网 《一步一步创建ASP.NET MVC5程序Repository+Autofac+Automapper

    1.9K50

    ASP.NET Core 1.1 简介

    URL重写中间件 通过可以使用IIS标准XML格式化规则,Apache Mod_Rewrite语法或一些编码应用程序一些简单C#方法配置中间件组件将URL重写功能带到ASP.NET Core...这允许将设计用于客户端消耗公共URL空间映射到中间件流水线所需下游组件任何表示,以及根据模式将客户端重定向不同URL。...另一个示例是将所有请求重定向http://example.comhttps://example.com。...您甚至可以配置URL重写,以便应用这两个规则,并且对example.com所有请求始终重定向SSL并重写为www。...Razor视图编译 在ASP.NET MVC之前版本中,有一种预编译Web站点方式,这样的话,视图编译就可以在部署阶段执行,而不是在运行期。通过这种方式,能够减少部署后首次加载页面造成延迟。

    2.4K60

    .NET MVC简单介绍

    大家好,又见面了,是你们朋友全栈君。 ASP.Net MVC简介 什么是ASP.Net MVC?...为什么ASP.Net MVC更好? 程序员有更强掌控力,不会产生垃圾代码;程序员能够更清晰控制运行过程,因此安全、性能、架构等更清晰。...控制器建立、视图建立 :在Controllers文件夹下点右键→【添加】→【控制器】→选择【MVC5控制器-空】,类名字以Controller结尾,比如“TestController”,会自动在Views...Index方法一致):添加→视图 新建一个用来收集用户参数类:IndexReqModel(类名无所谓)包含Num1、Num2两个属性(只要不重名,大小写都可以)。...然后声明一个IndexRespModel类用来给view传递数据显示,有Num1、Num2、Result。也可以同一个类实现,但是这样写看起来比较清晰。

    1.2K10

    Asp.net mvc 知多少(四)

    默认, ASP.NET MVC 项目在Views文件夹下仅有一个 _ViewStart.cshtml 文件。该文件中为你mvc 应用程序指定了默认layout。...而且, RedirectToAction 会根据路由表构造了一个跳转URL指定action/controller。RedirectToAction 会使浏览器收到302重定向状态码。...Return Redirect() - - 这是告诉MVC去跳转到指定URL而不是直接提供HTML。这种情况下,浏览器收到重定向通知并重新发送一个指定URL新请求。...Return RedirectToRoute() - 这是告诉MVC去路由表中查找指定路由,然后重定向路由中定义controller/action。同样,这也要发起一个请求。...因为如果使用Redirect,一旦你更改了路由表,你就需要手动去更改那些你自己构造URLs。 RedirectToRoute 重定向路由表中定义指定路由。

    2.2K90

    国内 Mono 相关文章汇总

    ) Mono 学习之旅一 Mono 学习之旅二 Monotouch Table View 里面动态增加Table View Cell Switch 触发Switch事件 程序崩溃 Montouch 增加图片模拟器...Monotouch 视图管理周期 Monotouch 定义一个定制 View Control类 Monotouch中使用UINavigationController C#(Mono)开发手机及平板应用入门篇...上面遇到问题 一个 Mono for Android 应用 MonoTouch 二三事(一) MonoTouch 二三事(二) ubuntu+apache2+mono+mvc3 Ubuntu12.04.1LTS...2.0:基于Mono跨平台开发框架 Xamarin向iOS和Android引入C# Async支持 有罪啊,用了一下午时间,终于无师自学,用C#开发了俺一个Android 浏览器APP,对不起...项目的组成说明 Harries-高性能分布式Asp.net通信框架 CentOS7 + mono +Jexus 环境搭建 VS2013中MVC5模板部署mono上艰辛历程 如何利用mono把.net

    11.2K60

    ASP.NET Core 基础知识】--部署和维护--日志记录和错误处理

    增强应用程序稳定性:有效错误处理机制有助于捕获和处理潜在异常情况,防止应用程序因未处理异常而崩溃或进入不稳定状态。...在ASP.NET Core中,实现全局异常处理通常涉及以下几个步骤: 创建异常处理中间件:首先,你需要创建一个中间件来捕获应用程序中未处理异常。...以下是一个简单示例,演示了如何创建自定义错误页面: 创建错误处理中间件: 首先,需要创建一个中间件来捕获应用程序异常,并根据需要重定向自定义错误页面。...try { await _next(context); } catch { // 处理异常并重定向错误页面...,用户将被重定向自定义错误页面,从而提供更友好和专业错误提示,提高用户体验。

    9300

    使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署MonoJexus

    最新Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈拿起Visual Studio 2015创建了一个mvc 5项目,然后部署Mono上,浏览下发现一堆错误出现...,如何Visual Studio 2015搞定ASP.NET MVC 5项目的跨平台开发。...vs2015新建一个asp.net项目(目标框架是.net4.5),选择mvc,并且更改身份验证为不适用身份验证。 ? 编译,并发布jexus,访问之。报出错误信息如下图。 ?...l Microsoft.Net.Compilers 重新发布jexus,通过浏览器可以看到清新Bootstrap界面了, mono 4.4.2版本目前对mvc5兼容性相当好了。...Bootstrap等几个前端框架里面也有一些不区分大小写,有一些样式无法显示,把Jexus不区分大小写打开就好了。

    1.9K100

    ASP.NET MVC 5 - 控制器

    基于MVC模式应用程序包含: · Models: 表示该应用程序数据并使用验证逻辑来强制实施业务规则数据类。 · Views: 应用程序动态生成 HTML使用模板文件。...本系列教程,我们将覆盖所有这些概念,并告诉您如何ASP.NET MVC 5中使用它们来构建应用程序。 首先,让我们创建一个控制器类。...使用ASP.NET MVC默认URL路由逻辑使用这样格式来判定哪些代码以便调用: /[Controller]/[ActionName]/[Parameters] 你也可在App_Start/RouteConfig.cs...相反,我们通常会使用一个单独视图模板文件来帮助生成返回HTML。让我们来看看下面我们如何能做到这一点吧。 控制器是MVC中重要组成部分,有了本节知识学习,相信大家会更加深入地理解MVC。...ASP.NET MVC 5 - 将数据从控制器传递给视图 5. ASP.NET MVC 5 - 添加一个模型 6.

    2.6K80

    带着你Code飞奔吧!

    http://www.cnblogs.com/dunitian/p/4501268.html 02.把插入数据自动备份一个表中 ~ 语境:本地和服务器自动同步(非数据同步解决方案) http://...http://www.cnblogs.com/dunitian/p/5474501.html 10.如何在nuget上传自己包+搭建自己公司NuGet服务器 http://www.cnblogs.com...“未在远程桌面会话中捕获到鼠标” http://www.cnblogs.com/dunitian/p/5844636.html 8.Hyper-V无法文件拖拽解决方案~~~这次用一个取巧方法架设一个...MVC5系列之~~~1.基础篇---必须知道小技能 http://www.cnblogs.com/dunitian/p/5714430.html 探索ASP.NET MVC5系列之~~~2.视图篇-...--包含XSS防御和异步分部视图处理 http://www.cnblogs.com/dunitian/p/5722370.html 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御

    2.2K70

    能否让APP永不崩溃—小光和我对决

    于是,有了一个不成熟想法。。。 让APP永不崩溃 既然我们可以拦截崩溃,那我们直接把APP中所有的异常拦截了,不杀死程序这样一个不会崩溃APP用户体验不是杠杠?...小光有点生气说: “这样肯定有问题,听着就不靠谱,哼,去试试看” 小光实验 于是小光按照网上一个小博主—积木文章,写出了以下捕获异常代码: //定义CrashHandler class CrashHandler...这样就会导致后续所有的主线程消息都会走到我们这个loop方法中进行处理,也就是一旦发生了主线程崩溃,那么这里就可以进行异常捕获。...: “还是去看Cockroach库源码吧~” “去,,” 总结 今天主要就说了一件事:如何捕获程序异常不让APP崩溃,从而给用户带来最好体验。...可能有的朋友会问,为什么要让程序崩溃呢?会有哪些情况需要我们进行这样操作呢?

    53310

    能否让APP永不崩溃—小光和我对决

    于是,有了一个不成熟想法。。。 让APP永不崩溃 既然我们可以拦截崩溃,那我们直接把APP中所有的异常拦截了,不杀死程序这样一个不会崩溃APP用户体验不是杠杠?...,自然程序就不会崩溃了,来张总结图。...这样就会导致后续所有的主线程消息都会走到我们这个loop方法中进行处理,也就是一旦发生了主线程崩溃,那么这里就可以进行异常捕获。...: “还是去看Cockroach库源码吧~” “去,,” 总结 今天主要就说了一件事:如何捕获程序异常不让APP崩溃,从而给用户带来最好体验。...可能有的朋友会问,为什么要让程序崩溃呢?会有哪些情况需要我们进行这样操作呢?

    72140

    译 | .NET Core 3.0 对诊断改进

    这些运行时功能可帮助您回答一些常见诊断问题: 应用程序是否正常? 为什么应用程序有异常行为? 为什么应用程序崩溃? ? 应用程序是否正常?...除了默认事件之外,还可以根据尝试执行调查启用其他提供程序。 因为运行了 dotnet-trace,您会得到一个 .netperf 文件。此文件包含运行时事件和可按视图可视化采样 CPU 堆栈。...转储分析(Dump Analysis) 转储是进程意外终止时通常捕获进程工作虚拟内存状态记录。诊断核心转储文件通常用于识别应用程序崩溃或意外行为原因。...传统上,您依靠操作系统在应用程序崩溃(例如Windows 错误报告)时捕获转储,或者使用 procdump 等工具在满足某些触发条件时捕获转储。...analyze 在下面的示例中,尝试通过遍历堆来确定已崩溃转储ASP.NET Core托管环境。

    1.5K30

    如何创建一个自定义`ErrorHandlerMiddleware`方法

    在本文中,将讲解如何通过自定义ExceptionHandlerMiddleware,以便在中间件管道中发生错误时创建自定义响应,而不是提供一个“重新执行”管道路径。...所有的.NET应用程序都有可能会产生错误,并且不幸地引发异常,因此在ASP.NET中间件管道中处理这些异常显得非常重要。...服务器端呈现应用程序(如Razor Pages)通常希望捕获这些异常并重定向一个错误页面。...这没有听起来那么糟糕:即使没有异常处理中间件,ASP.NET Core也会在其底层架构中捕获该异常,将其记录下来,并向客户端返回一个空白500响应: ?...如果是这样,那么描述Controller方法可能是明智选择。 如果您不关心这些,那么本文中显示简单处理程序方法可能是更好选择。

    2.2K10
    领券