我有一个Asp.Net Core 2.0应用程序,配置为在生产中显示错误页面或使用DeveloperExeptionPage。
如果我直接从控制器抛出错误,这样可以正常工作。 但是,如果我从ViewComponent抛出一个错误,它就不起作用。我在浏览器中看到一个空白页面,当我查看Chrome上的开发人员工具时,页面请求只是在控制台中显示状态为“failed”和“GET(page url)200()”。
在IE中,我收到“此页面无法显示”,并显示“错误代码:INET_E_DOWNLOAD_FAILURE”
任何帮助都将不胜感激。
答案 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”视图。