首页
学习
活动
专区
工具
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页面的重定向。

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

相关·内容

领券