我正在使用 ASP.NET Core Razor Pages 和 Identity。我以标准方式使用 StatusCodePages 中间件:
app.UseStatusCodePagesWithReExecute("/Error", "?statusCode={0}");
在该剃刀页面中,我可以打开状态代码以呈现 401、403、404 和“其他”(400..599 范围内的所有其他代码)的不同内容。然而这会变得混乱;我更喜欢单独的页面。
所以代替这个:
我想要这个:
这可能吗?
我已经知道的丑陋的解决方法:
"/Error/{0}"
,但这不切实际:我必须为 400..599 范围内的每个代码定义一个单独的页面。我绝对做不到。当然可以,只需在
Pages
文件夹中创建页面,如下所示:
然后在Program.cs中使用
app.UseStatusCodePagesWithReExecute("/{0}")
:
app.UseStatusCodePagesWithReExecute("/{0}");
app.UseExceptionHandler("/500");
//app.UseDeveloperExceptionPage();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();