Routing in MVC

Posted by Community Admin on 05-Aug-2018 15:07

Routing in MVC

All Replies

Posted by Community Admin on 07-Sep-2015 00:00

Hi all, 

I'm trying to do something with unhandled exceptions.

For some reason, it is very hard to show an error page if an unhandled exception occurs. I found a way to redirect 404, 403 etc. using an ErrorController. A 500 exception however always shows inside the active MVC view.

What works is something like this (simplified code): 

try
   return View("Index", model);
catch (Exception)
   return RedirectToRoute(ErrorControllerRoute.GetInternalServerError);

This RedirectToRoute will redirect to:

I wanted to do something like this in the OnException override of my BaseController class like this:

protected override void OnException(ExceptionContext filterContext)
   filterContext.Result = RedirectToRoute(ErrorControllerRoute.GetInternalServerError);
   base.OnException(filterContext);

However, that is not working. The URL it generates in this case is:

So, it looks like the ErrorController class is ignored.

Any idea how this works within Sitefinity?

Posted by Community Admin on 12-Sep-2015 00:00

Hello Daniel,

You can redirect to a controller route the following way:

filterContext.Result = new RedirectToRouteResult(new
                   RouteValueDictionary(new controller = "Controller", action = "Error"));

If you want to show a view for the error, you can use the following:
public override void OnException(ExceptionContext filterContext)
        
            Exception ex = filterContext.Exception;
            Log.Write(ex, ConfigurationPolicy.ErrorLog);
 
            if (!string.IsNullOrEmpty(this.View))
            
                this.View = HandleErrorAttributeCustom.defaultErrorView;
            
 
            base.OnException(filterContext);
        

@model HandleErrorInfo
 
<h1>Error</h1>
 
<p>@Model.Exception.ToString()</p>

which you can also place in a attribute inheriting from HandleErrorAttribute.

Hope the above helps.

Regards,
Nikola Zagorchev
Telerik
 
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal and vote to affect the priority of the items
 

This thread is closed