祝大家有美好的一天!试图解决一个问题。我使用一种方法来处理网站上的所有错误(此方法在一个人的博客上找到)
全球.asax
protected void Application_Error(object sender, EventArgs e)
{
HttpContext ctx = HttpContext.Current;
Exception ex = ctx.Server.GetLastError();
ctx.Response.Clear();
RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext;
IController controller = new CategoryController();
var context = new ControllerContext(rc, (ControllerBase)controller);
var viewResult = new ViewResult();
var httpException = ex as HttpException;
if (httpException != null)
{
switch (httpException.GetHttpCode())
{
case 404:
viewResult.ViewName = "Error404";
break;
case 500:
viewResult.ViewName = "Error500";
break;
default:
viewResult.ViewName = "Error";
break;
}
}
else
{
viewResult.ViewName = "Error";
}
viewResult.ViewData.Model = new HandleErrorInfo(ex, context.RouteData.GetRequiredString("controller"), context.RouteData.GetRequiredString("action"));
viewResult.ExecuteResult(context);
ctx.Server.ClearError();
}
当我在工作室中启动项目时,导致错误。我在该代码中遇到异常:
RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext;
例外:
无法将“ ”类型的对象转换为“ ”
System.Web.DefaultHttpHandler
类型System.Web.Mvc.MvcHandler
一旦我停止调试(Shift + F5)。此方法效果很好并且可以处理任何错误。但是在项目开始时,导致错误。寻找这些主题的解决方案,但没有找到这个问题。请帮忙。
[HandleError]
public class CategoryController : Controller
{
// some methods
}