C# 在404/500上的MVC5中显示自定义错误CSHTML页面/有任何异常吗?
我一整天都在为这件事发愁。我正试图在抛出异常时显示一个友好的cshtml页面,以便我的UX是一致的——我甚至不希望我的用户知道我在UI的.net堆栈上 我正在导航到C# 在404/500上的MVC5中显示自定义错误CSHTML页面/有任何异常吗?,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我一整天都在为这件事发愁。我正试图在抛出异常时显示一个友好的cshtml页面,以便我的UX是一致的——我甚至不希望我的用户知道我在UI的.net堆栈上 我正在导航到localhost:2922/junkurl,进行测试-如果URL未解析、找不到或生成异常,我希望显示友好的呈现cshtml页面 我在web.config中拥有的内容: <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Views/
localhost:2922/junkurl
,进行测试-如果URL未解析、找不到或生成异常,我希望显示友好的呈现cshtml页面
我在web.config中拥有的内容:
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Views/Shared/Error.cshtml">
</customErrors>
它起作用了。唯一的问题是,我不想用纯html重新构建我的整个布局/LoginPartial/等等-我想用razor渲染它。围绕这一点的典型方法是什么?我已经为此做了大量的搜索,所以如果我没有找到答案,我很抱歉,我完全不知所措
如果可能的话,我宁愿从代码中执行此操作,但据我所知,代码只会覆盖一定级别的异常。。。在某一点上,它似乎必须通过配置来处理。我只希望这是简单的配置 尝试在web.config中使用ErrorController和以下配置 web.config
<customErrors mode="On" defaultRedirect="~/Error">
<error redirect="~/Error/NotFound" statusCode="404" />
<error redirect="~/Error/InternalServer" statusCode="500" />
</customErrors>
有没有办法使用MVC视图/呈现并从URL中删除aspxerrorpath?否则,这是很好的:)我问的原因是,理想情况下,我的用户甚至不知道我在.NET上。。。尝试尽可能多地隐藏实现/体系结构Readd redirectMode=“ResponseWrite”到customErrors部分如果我这样做,我会再次看到通用的黄色错误页面,因为ResponseWrite显然不喜欢MVC路由是的,我的错。看看这个。这里有关于你的问题的讨论
<customErrors mode="On" defaultRedirect="~/Error">
<error redirect="~/Error/NotFound" statusCode="404" />
<error redirect="~/Error/InternalServer" statusCode="500" />
</customErrors>
public class ErrorController : Controller
{
public ActionResult Index()
{
return View("Error");
}
public ActionResult NotFound()
{
Response.StatusCode = 200;
return View("NotFound");
}
public ActionResult InternalServer()
{
Response.StatusCode = 200;
return View("InternalServer");
}
}