有誰知道爲什麼Error.cshtml在異常錯誤被觸發時不顯示。它在網頁瀏覽器的標題中顯示了帶有HttpStatus 500的空白。MVC 6錯誤處理程序沒有顯示視圖頁面?
//Startup...
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseExceptionHandler("/Home/Error");
app.UseMvc(routes => {
routes.MapRoute(name: "default", template: "{controller=SignIn}/{action=Index}");
});
}
}
//Controller...
public class HomeController : Controller
{
[HttpGet]
public IActionResult Error()
{
return View();
}
}
public class SignInController : Controller
{
[HttpGet]
public IActionResult Index()
{
throw new Exception("Testing error handling");
return View();
}
}
[編輯] 但是,如果使用app.UseExceptionHandler("/Error.html");
那麼它會工作,因爲它是一個靜態頁面。
刪除異常不顯示頁面? –
是的,它會顯示'/ Signin/Index'查看頁面。 – fletchsod
這很奇怪,你的服務器實際上服務於一個靜態文件,因爲你的'Configure'方法中沒有'app.UseStaticFiles();'。在**'app.UseExceptionHandler(「/ error.html」);'之後添加它是很重要的。但與/首頁/錯誤我不明白爲什麼它不適合你,我已經嘗試了你的確切代碼,它的效果很好。嘗試使用「Web Application」模板創建一個新的ASP.NET 5項目,並檢查與實際項目的所有差異。 –