Asp.net mvc Asp.net MVC 4重定向到操作-前置域
我需要在RedirectToAction中执行的重定向前加一个域,所以它不是相对的,而是绝对url。如何做到这一点 编辑:我将添加更多信息: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
它是一个多租户应用程序,允许客户端设置代理域。所以我需要所有的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通过代理。