【问题标题】:ASP.NET Core 3.0 Custom Error Page not reachable无法访问 ASP.NET Core 3.0 自定义错误页面
【发布时间】:2020-10-08 23:17:56
【问题描述】:

我在Pages 文件夹中创建了一个简单的error.cshtml 剃须刀页面。 Pages 文件夹与Views 文件夹处于同一级别,因此它处于正确的级别。

Error.cshtml 页面类似于此处显示的标记和代码:

@page
<h2>Sorry... Try again later...</h2>

Startup.cs我有以下代码

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        //app.UseDefaultFiles();
        app.UseStaticFiles();
        app.UseNodeModules();

        app.UseRouting();

        app.UseEndpoints(cfg => {
            cfg.MapControllerRoute("Fallback", "{controller}/{action}/{id?}",
                new { controller = "App", action = "Index" });
        });            
}

我确保 env 不是 Development 环境,因此它调用 app.UseExceptionHandler("/Error")。但是,当抛出异常时,我会收到 HTTP ERROR 404 “localhost page cannot be found”消息,而不是收到我的自定义错误页面。

我不确定为什么我的错误页面没有加载。任何帮助表示赞赏。

【问题讨论】:

    标签: asp.net-mvc asp.net-core error-handling razor-pages


    【解决方案1】:

    根据您的描述,我发现您没有添加剃须刀页面的端点映射设置。这就是您遇到 404 错误的原因。

    我建议你可以尝试在app.UseEndpoints 方法中添加endpoints.MapRazorPages();,这样就可以了。

    详情,可参考以下代码:

            app.UseEndpoints(endpoints =>
            {
    
                endpoints.MapRazorPages();
                endpoints.MapControllerRoute(
                        name: "default",
                        pattern: "{controller=Default}/{action=Index}/{id?}");
    
            });
    

    如果你不注入razor页面,你还应该在ConfigureServices方法中添加以下代码:

            services.AddRazorPages();
    

    结果:

    【讨论】:

    • 谢谢白兰度。端点.MapRazorPages();是需要的。但我还必须在应用程序启动代码中将 services.AddRazorPages() 添加到 ConfigureServices(...) 中。
    • 是的,如果你想使用 RazorPages,你应该在 ConfigureServices 方法中注入 AddRazorPages。我猜你已经设置了它,所以我在回复中没有提到它。我会编辑回复,如果您觉得我的回复对您有帮助,请将其标记为答案,以便其他遇到相同问题的人更容易找到答案。
    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 2020-02-15
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    相关资源
    最近更新 更多