Ошибки, выбрасываемые из компонента View, не отображают страницу ошибок - PullRequest
0 голосов
/ 25 мая 2018

У меня есть приложение Asp.Net Core 2.0, настроенное на отображение страницы ошибок в Production или использование DeveloperExeptionPage.

Если выдается ошибка непосредственно из контроллера, это работает нормально.Однако, если я выкидываю ошибку из ViewComponent, она не работает.Я получаю пустую страницу в браузере, и когда я просматриваю Инструменты разработчика в Chrome, в запросе страницы просто отображается состояние «сбой» и «GET (page url) 200 ()» в консоли.

InIE, я получаю «Эта страница не может быть отображена» с «Код ошибки: INET_E_DOWNLOAD_FAILURE»

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 15 июня 2018

Трудно понять, что происходит не так, не увидев класс вашего ViewComponent и как вы вызываете компонент представления.

При этом в новом приложении, созданном с dotnet new mvc (и версией 2.1.3 SDK), работает следующее.

. \ Startup.cs

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

. \ Views \ Shared \ Components \ FooBar \ Default.cshtml

<p>FooBarViewComponent</p>

. \ Views \ Home \ 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".

...