从视图组件中抛出的错误不显示错误页面

时间:2018-05-25 15:37:00

标签: asp.net-core .net-core asp.net-core-viewcomponent

我有一个Asp.Net Core 2.0应用程序,配置为在生产中显示错误页面或使用DeveloperExeptionPage。

如果我直接从控制器抛出错误,这样可以正常工作。 但是,如果我从ViewComponent抛出一个错误,它就不起作用。我在浏览器中看到一个空白页面,当我查看Chrome上的开发人员工具时,页面请求只是在控制台中显示状态为“failed”和“GET(page url)200()”。

在IE中,我收到“此页面无法显示”,并显示“错误代码:INET_E_DOWNLOAD_FAILURE”

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果没有看到ViewComponent的类以及如何调用视图组件,很难知道出了什么问题。

话虽如此,以下内容适用于使用dotnet new mvc(以及SDK的2.1.3版)创建的全新应用程序。

即可。\ Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseExceptionHandler("/Home/Error");
    app.UseMvcWithDefaultRoute();
}

即可。\视图\共享\组件\ FooBar的\ Default.cshtml

<p>FooBarViewComponent</p>

即可。\视图\主页\ Index.cshtml

@await Component.InvokeAsync("FooBar")

即可。\ FooBarViewComponent.cs

public class FooBarViewComponent : ViewComponent {
    public async Task<IViewComponentResult> InvokeAsync() {
        throw new System.Exception("Exception in FooBar");
        await Task.Delay(0);
        return View();
    }
}

导航到主页可靠地呈现“/ Home / Error”视图。