Redirection page

Handling incorrect URLs and responding with a good error message

If your user requests an page on your site that doesn't exist, Turnkey will redirect the request to a viewmodel called ErrorView

On this page you can put any user friendly message that you want to display.

Catching error information

If you add two variables in the ErrorView viewmodel, these will be filled with information about the error.

  • RawURL, a string that will receive the URL path that brought the user to the error page
  • ErrorCode, a string that will receive the error code, for example 400

The ErrorView could for example look like this

ErrorPageViewmodel.png

Further redirection

This feature can also be used to further redirect to other pages. In the example above there is a action button with an Interval set to 10 ms that in special cases redirect to the correct page in the application. You can add any lookup logic and have multiple actions that handles different URLs and errors.

This also makes it possible for you to add "shortcuts" to your application.

Implementation details

This feature is implemented using settings in the web.config file, like this

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="400"/>
  <error statusCode="400" responseMode="ExecuteURL" path="/DWV?v=ErrorView&amp;ErrorCode=400"/>
  <remove statusCode="401"/>
  <error statusCode="401" responseMode="ExecuteURL" path="/DWV?v=ErrorView&amp;ErrorCode=401"/>
  <remove statusCode="402"/>
  <error statusCode="402" responseMode="ExecuteURL" path="/DWV?v=ErrorView&amp;ErrorCode=402"/>
  <remove statusCode="403"/>
  <error statusCode="403" responseMode="ExecuteURL" path="/DWV?v=ErrorView&amp;ErrorCode=403"/>
  <remove statusCode="404"/>
  <error statusCode="404" responseMode="ExecuteURL" path="/DWV?v=ErrorView&amp;ErrorCode=404"/>
</httpErrors>

This redirects errors using the DisplayWithVariables feature. It redirect to the view "ErrorView" and adds the error code. DWV is a short version of DisplayWithVariables that doesn't require a root object, which we don't have in this case.

This page was edited 2 days ago on 03/26/2024. What links here