如何设置 app.UseExceptionHandler 和 "razor page" Error.cshtml?
How to setup app.UseExceptionHandler with "razor page" Error.cshtml?
我尝试用我自己创建的 Error2.cshtml razor 页面 替换默认的 MVC 错误页面 Error.cshtml,但这不起作用:错误 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?
{
//...
}
}
}
引用Handle errors in ASP.NET Core: Configure a custom exception handling page
Configure an exception handler page to use when the app isn't running in the Development environment:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
env.EnvironmentName = EnvironmentName.Production;
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/error");
}
In a Razor Pages app, the dotnet new
Razor Pages template provides an Error
page and an error PageModel
class in the Pages
folder.
在您的情况下,您可以将其设置为
app.UseExceptionHandler("/error2");
应该放在Pages/Error2.cshtml
更新其 PageModel
namespace MyApp.Pages {
public class Error2Model : PageModel {
public IActionResult OnGet() {
//...
return Page();
}
}
}
我尝试用我自己创建的 Error2.cshtml razor 页面 替换默认的 MVC 错误页面 Error.cshtml,但这不起作用:错误 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?
{
//...
}
}
}
引用Handle errors in ASP.NET Core: Configure a custom exception handling page
Configure an exception handler page to use when the app isn't running in the Development environment:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
env.EnvironmentName = EnvironmentName.Production;
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/error");
}
In a Razor Pages app, the
dotnet new
Razor Pages template provides anError
page and an errorPageModel
class in thePages
folder.
在您的情况下,您可以将其设置为
app.UseExceptionHandler("/error2");
应该放在Pages/Error2.cshtml
更新其 PageModel
namespace MyApp.Pages {
public class Error2Model : PageModel {
public IActionResult OnGet() {
//...
return Page();
}
}
}