/// <summary> /// Uses the values in the <see cref="RoutingContext"/> to modify /// the servers response. /// F.x. return an http status code of 404 not found /// or redirect the client to a new URL. /// </summary> /// <param name="context"> /// The routing context returned by React Router. /// It contains new values for the server response. /// </param> /// <param name="Response">The response object to use.</param> public static void ModifyResponse(RoutingContext context, HttpResponse Response) { var statusCode = context.status.Value; // 300-399 if (statusCode >= 300 && statusCode < 400) { if (!string.IsNullOrEmpty(context.url)) { if (statusCode == 301) { #if NET451 Response.RedirectPermanent(context.url); #else Response.Redirect(context.url, true); #endif } else // 302 and all others { Response.Redirect(context.url); } } else { throw new ReactRouterException("Router requested redirect but no url provided."); } } else { Response.StatusCode = statusCode; } }