首页 > 解决方案 > 如何使用“剃须刀页面”Error.cshtml 设置 app.UseExceptionHandler?

问题描述

我试图用我自己创建的 Error2.cshtml razor page替换默认的 MVC 错误页面 Error.cshtml ,但这不起作用:错误 404

我应该在路由中额外配置什么以使其正常工作?

启动.cs

app.UseExceptionHandler("/Home/Error2"); // new razor page is located in standard /Views/Shared folder

错误2模型

namespace MyApp.Views.Shared
{
    public class Error2Model : PageModel
    {
        public IActionResult OnGet() // this looks  unreliable but what to use instead?
        {
           //...
        }
     }
 }

标签: asp.net-coreasp.net-core-mvcasp.net-core-2.1razor-pages

解决方案


参考ASP.NET Core 中的句柄错误:配置自定义异常处理页面

配置应用程序未在开发环境中运行时使用的异常处理程序页面:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    env.EnvironmentName = EnvironmentName.Production;

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/error");
    }

在 Razor Pages 应用程序中,dotnet newRazor Pages 模板在文件夹中提供一个Error页面和一个错误PageModel类。Pages

在您的情况下,您可以将其设置为

app.UseExceptionHandler("/error2");

应该放在Pages/Error2.cshtml

更新其PageModel

namespace MyApp.Pages {
    public class Error2Model : PageModel {
        public IActionResult OnGet() {
           //...
            return Page();
        }
     }
 }

推荐阅读