0

I created the page Application_Error in Global.asax

I take error. And I'm redirecting.

Redirect Url = xxxxx.com/Error/E404

But the page's source code shows.

enter image description here

ErrorController content;

public class ErrorController : Controller
{
    // GET: Error
    public ActionResult E404()
    {
        var res = HttpContext.Response;
        return View();
    }
}

Global.asax content;

protected void Application_Error()
    {
        var exception = Server.GetLastError();
        var httpException = exception as HttpException;
        var request = Request;
        Response.Clear();
        Server.ClearError();
        Response.TrySkipIisCustomErrors = true;
        var routeData = new RouteData();
        routeData.Values["controller"] = "Error";
        routeData.Values["action"] = "Index";
        routeData.Values["exception"] = exception;
        Response.StatusCode = 500;

        if (httpException != null)
        {
            Response.StatusCode = httpException.GetHttpCode();

            switch (Response.StatusCode)
            {
                case 403:
                    routeData.Values["action"] = "E403";
                    break;
                case 500:
                    routeData.Values["action"] = "E500";
                    break;
                case 404:
                    routeData.Values["action"] = "E404";
                    break;
                default:
                    routeData.Values["action"] = "General";
                    break;
            }

            // -- Save Log +
            string Url = request.Url.OriginalString;
            string Query = request.Url.Query;
            string ReferrerUrl = request.UrlReferrer == null ? null : request.UrlReferrer.ToString();
            string Browser = request.Browser.Browser;
            string UserAgent = request.UserAgent;
            string IpAddress = request.UserHostAddress;
            string iPv6Address = "";
            bool IsMobileDevice = request.Browser.IsMobileDevice;

            ActionLogger.Log_ApplicationError(Response.Status,
                Response.StatusCode.ToString(),
                Response.StatusDescription,
                exception.HResult.ToString(),
                exception.HelpLink,
                exception.TargetSite.ToString(),
                exception.Source,
                exception.StackTrace,
                Url,
                Query,
                DateTime.Now,
                exception.Message,
                IpAddress,
                iPv6Address,
                ReferrerUrl,
                Browser,
                UserAgent,
                IsMobileDevice);
            // -- Save Log 
        }
        IController errorsController = new Controllers.ErrorController();
        var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
        errorsController.Execute(rc);
    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        GlobalConfiguration.Configuration.EnsureInitialized();

        RegisterViewEngine(ViewEngines.Engines);

ThemeApplicationBuild.RegisterApplication(this);

}

...

Oğuzhan Sari
  • 89
  • 1
  • 9

1 Answers1

0

I solved the problem.

Application_Error set ContentType = "text/html"

        HttpContext.Current.Response.ContentType = "text/html";

        IController errorsController = new Controllers.ErrorController();
        var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
        errorsController.Execute(rc);
Oğuzhan Sari
  • 89
  • 1
  • 9