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

如何将用户重定向到ASP.NET MVC中的自定义404页面而不是抛出异常?

要在ASP.NET MVC中将用户重定向到自定义的404页面而不是抛出异常,您可以遵循以下步骤:

  1. 创建自定义404页面:

首先,您需要创建一个自定义的404页面。您可以在项目的Views/Shared文件夹中创建一个名为Error.cshtml的视图。在这个视图中,您可以添加自定义的错误消息和样式。

  1. 创建一个自定义错误过滤器:

接下来,您需要创建一个自定义错误过滤器,该过滤器将捕获404错误并将用户重定向到自定义的404页面。在项目中创建一个名为CustomErrorFilterAttribute.cs的新类,并继承自HandleErrorAttribute类。然后,重写OnException方法以处理404错误。

代码语言:csharp
复制
using System.Web.Mvc;

public class CustomErrorFilterAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        if (filterContext.Exception is HttpException && ((HttpException)filterContext.Exception).GetHttpCode() == 404)
        {
            filterContext.Result = new ViewResult
            {
                ViewName = "Error"
            };
            filterContext.ExceptionHandled = true;
            filterContext.HttpContext.Response.Clear();
            filterContext.HttpContext.Response.StatusCode = 404;
        }
        else
        {
            base.OnException(filterContext);
        }
    }
}
  1. 注册自定义错误过滤器:

最后,您需要在全局过滤器中注册自定义错误过滤器。在Global.asax.cs文件中,将以下代码添加到Application_Start方法中:

代码语言:csharp
复制
GlobalFilters.Filters.Add(new CustomErrorFilterAttribute());

现在,当用户尝试访问不存在的页面时,他们将被重定向到自定义的404页面,而不是抛出异常。

这个方法避免了使用亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的一些云计算品牌商,并且可以在ASP.NET MVC中实现自定义404页面的重定向。

相关搜索:IS4mvc页面直接重定向到ASP.NET的登录,而不是转到主页如何重定向到ASP.NET MVC中的调用页面?如何将404错误重定向到ExpressJS中的页面?TYPO3 9.5 Extbase如何将带有无效对象的showAction调用重定向到自定义页面(而不是404!)如何将用户重定向到用户页面,并将管理员重定向到cakephp中的管理页面如何将用户重定向到登录页面而不是BasicAuthentication (c# dotnet核心)的401错误?Laravel:如果用户是admin,那么如何将默认的laravel用户重定向到admin页面,或者如果用户不是admin,则重定向到用户页面?带有Razor Pages的Asp.net核心3.1重定向到索引页面,而不是目标页面将Moodle中挂起的用户重定向到自定义页面如何将404、500或403等错误重定向到apache httpd中的自定义错误页面?如何将控制器重定向到ASP.NET内核中的剃刀页面将匿名用户或错误用户类型重定向到ASP.net MVC3中特定控制器内的登录页面如何将用户从登录页面重定向到不同应用程序Django中的注册页面?如何将URL重定向到hosts文件中的另一个URL,而不是将IP重定向到URL?在Drupal7中尝试访问未发布的内容页面时,如何将用户重定向到登录页面如何将用户从单击iframe中的按钮重定向到另一个页面在php成功响应后,如何将用户重定向到ajax中的另一个页面?根据asp.net标识中的角色,将登录用户或管理员重定向到特定页面或视图当用户无法在AMP表单中输入正确的电子邮件(ID)时,我如何将用户重定向到注册页面?将用户定向到ASP.Net MVC应用程序中的另一个页面会导致自动生成的代码出现语法错误
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券