HttpResponse.RedirectToRoute Method

https://docs.microsoft.com/en-us/dotnet/api/system.web.httpresponse.redirecttoroute?view=netframework-4.8#System_Web_HttpResponse_RedirectToRoute_System_Object_

              RedirectToRoute(Object)

Redirects a request to a new URL by using route parameter values.

C#
public void RedirectToRoute (object routeValues);

Parameters

routeValues
Object

The route parameter values.

Exceptions

No route corresponds to the specified route parameters.

Redirection was attempted after the HTTP headers had been sent.

Examples

The following example shows how to call this method to redirect to a route that has parameters that are named productid and category.

C#
Response.RedirectToRoute(
  new { productid = "1", category = "widgets" });

Remarks

This method is provided for coding convenience. It is equivalent to calling the Redirect(String, Boolean) method with the second parameter set to false.

This method converts the object that is passed in routeValues to a System.Web.Routing.RouteValueDictionary object by using the RouteValueDictionary.RouteValueDictionary(Object) constructor.

The RouteCollection.GetVirtualPath method is then called to determine the URL.

ASP.NET performs the redirection by returning a 302 HTTP status code.

You can get the path by the following  code in Application_Error

  RouteValueDictionary dictionary =
                            new RouteValueDictionary(new {controller = "Error", action = "Index"});
                        var data = RouteTable.Routes.GetVirtualPath(Request.RequestContext, dictionary);
                        if (data != null)
                        {
                            LogUtil.CreateLog(LogLevel.Error, $"data.VirtualPath = {data.VirtualPath}");
                        }
原文地址:https://www.cnblogs.com/chucklu/p/12721176.html