2016-03-23 59 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();'配置()'? –