Пример #1
0
        /// <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;
            }
        }