Asp.net mvc Asp.net MVC 4重定向到操作-前置域

Asp.net mvc Asp.net MVC 4重定向到操作-前置域,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我需要在RedirectToAction中执行的重定向前加一个域,所以它不是相对的,而是绝对url。如何做到这一点 编辑:我将添加更多信息: 它是一个多租户应用程序,允许客户端设置代理域。所以我需要所有的URL通过代理。因此,actionredirect应该是:需要通过定义重定向到action必须将您带到其中一个控制器中的某个操作。如果要重定向到其他url,请尝试: return Redirect("http://www.stackoverflow.com"); 这不能单独使用Redirect

我需要在RedirectToAction中执行的重定向前加一个域,所以它不是相对的,而是绝对url。如何做到这一点

编辑:我将添加更多信息:
它是一个多租户应用程序,允许客户端设置代理域。所以我需要所有的URL通过代理。因此,actionredirect应该是:需要通过定义重定向到action必须将您带到其中一个控制器中的某个操作。如果要重定向到其他url,请尝试:

return Redirect("http://www.stackoverflow.com");

这不能单独使用RedirectToAction来完成。但是,可以使用来生成使用特定主机名的绝对URL

您只需使用UrlHelper.RouteUrl生成URL,然后使用redirect方法执行重定向

如果您知道路由名称,请使用以下内容:

var routeValues = new RouteValueDictionary(new { id = 12345 });
string url = Url.RouteUrl("Products.Show", routeValues, "http", "www.domainname1.com");
return Redirect(url);
var routeValues = new RouteValueDictionary(
    new { controller = "Products", action = "Show", id = 12345 });
string url = Url.RouteUrl(null, routeValues), "http", "www.domainname1.com");
return Redirect(url);
如果要基于控制器名称和操作生成URL,请使用以下命令:

var routeValues = new RouteValueDictionary(new { id = 12345 });
string url = Url.RouteUrl("Products.Show", routeValues, "http", "www.domainname1.com");
return Redirect(url);
var routeValues = new RouteValueDictionary(
    new { controller = "Products", action = "Show", id = 12345 });
string url = Url.RouteUrl(null, routeValues), "http", "www.domainname1.com");
return Redirect(url);
以上任一项都会重定向到一个绝对URL,如


请注意,控制器代码中可以通过内置属性使用UrlHelper的实例。)

是否要重定向到另一个操作或完全不同的网站?它可能是允许客户端设置代理域的多租户应用程序的副本。所以action/controller确实存在,它将被正确重定向,但我需要所有URL通过代理。是的,问题是它是一个多租户应用程序,允许客户端设置代理域。因此,操作/控制器确实存在,它将被正确重定向,但我需要所有URL通过代理。