我刚刚看了Codeplex上HandleError方法的源代码。我从那里搜集了一些代码
Dim controllerName As String = DirectCast(filterContext.RouteData.Values("controller"), String)
Dim actionName As String = DirectCast(filterContext.RouteData.Values("action"), String)
Dim model As New HandleErrorInfo(filterContext.Exception, controllerName, actionName)
filterContext.Result = New ViewResult() With { _
.ViewName = View, _
.MasterName = Master, _
.ViewData = New ViewDataDictionary(Of HandleErrorInfo)(model), _
.TempData = filterContext.Controller.TempData _
}
filterContext.ExceptionHandled = True
filterContext.HttpContext.Response.Clear()
filterContext.HttpContext.Response.StatusCode = 500
''# Certain versions of IIS will sometimes use their own error page when
''# they detect a server error. Setting this property indicates that we
''# want it to try to render ASP.NET MVC's error page instead.
filterContext.HttpContext.Response.TrySkipIisCustomErrors = True
这似乎有效