Tôi có một số mã cơ bản để xác định lỗi trong ứng dụng MVC của mình. Hiện nay trong dự án của tôi, tôi có một bộ điều khiển được gọi Error
với các phương pháp hành động HTTPError404()
, HTTPError500()
và General()
. Tất cả chúng đều chấp nhận một tham số chuỗi error
. Sử dụng hoặc sửa đổi mã bên dưới. Cách tốt nhất / thích hợp để chuyển dữ liệu đến Bộ điều khiển lỗi để xử lý là gì? Tôi muốn có một giải pháp càng mạnh càng tốt.
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Response.Clear();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
RouteData routeData = new RouteData();
routeData.Values.Add("controller", "Error");
switch (httpException.GetHttpCode())
{
case 404:
// page not found
routeData.Values.Add("action", "HttpError404");
break;
case 500:
// server error
routeData.Values.Add("action", "HttpError500");
break;
default:
routeData.Values.Add("action", "General");
break;
}
routeData.Values.Add("error", exception);
// clear error on server
Server.ClearError();
// at this point how to properly pass route data to error controller?
}
}