首页 文章

如何使用“razor page”Error.cshtml设置app.UseExceptionHandler?

提问于
浏览
1

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

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

Startup.cs

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

Error2Model

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

1 回答

  • 3

    参考Handle errors in ASP.NET Core: Configure a custom exception handling page

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

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        env.EnvironmentName = EnvironmentName.Production;
    
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/error");
        }
    

    在Razor Pages应用程序中,dotnet新的Razor Pages模板在Pages文件夹中提供了错误页面和错误PageModel类 .

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

    app.UseExceptionHandler("/error2");
    

    哪个应放在 Pages/Error2.cshtml

    更新 PageModel

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

相关问题