2016-03-23 77 views
0

有誰知道爲什麼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");那麼它會工作,因爲它是一個靜態頁面。

+0

刪除異常不顯示頁面? –

+0

是的,它會顯示'/ Signin/Index'查看頁面。 – fletchsod

+0

這很奇怪,你的服務器實際上服務於一個靜態文件,因爲你的'Configure'方法中沒有'app.UseStaticFiles();'。在**'app.UseExceptionHandler(「/ error.html」);'之後添加它是很重要的。但與/首頁/錯誤我不明白爲什麼它不適合你,我已經嘗試了你的確切代碼,它的效果很好。嘗試使用「Web Application」模板創建一個新的ASP.NET 5項目,並檢查與實際項目的所有差異。 –

回答

0

你在你的路由定義缺少一個右括號:

routes.MapRoute(name: "default", template: "{controller=SignIn}/{action=Index}"); 
+0

這是我輸入這個StackOverflow發佈時輸入錯誤。修正了現在的錯字。 – fletchsod

+0

在黑暗中拍攝:由於您在標題上看到HTTPStatus 500語言,因此會加載500頁,但是,並未加載任何css/js文件。你可以添加'app.UseStaticFiles();'配置()'? –