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

时间:2018-10-08 21:54:37

标签: asp.net-core asp.net-core-mvc asp.net-core-2.1 razor-pages

我尝试用我自己创建的Error2.cshtml 剃刀页面替换默认的MVC错误页面Error.cshtml,但这不起作用:错误404 。< / p>

我应该在路由中另外配置什么才能使其正常工作?

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 个答案:

答案 0 :(得分: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 new Razor Pages模板在Error文件夹中提供了一个PageModel页面和一个错误Pages类。

根据您的情况,您可以将其设置为

app.UseExceptionHandler("/error2");

应放置在 Pages/Error2.cshtml

更新其PageModel

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