我正在使用RedirectToAction
重定向到另一个视图,但是我在IIS中的某个站点中使用了一个应用程序,因此必须有一个前缀必须转到该路径。
当我执行RedirectToAction
时,它只会重定向到根目录。
我需要它来尊重当前路径并沿着这些路线重定向。
例如:
我在https://localhost:8085/app/custompath/controller1/action
我打电话
return RedirectToAction("controller2", "action");
我被重定向到
https://localhost:8085/controller2/action
而不是
https://localhost:8085/app/custompath/controller2/action
答案 0 :(得分:1)
RedirectToAction
,或者允许您根据路径信息(如控制器,操作,名称等)生成URL的任何类似方法,仅适用于上下文中当前运行的应用程序。您不能使用它们为其他应用程序中的路径生成URL。
你可以只使用Redirect
字符串网址,但您可以生成所需的网址。典型方法是在应用程序设置中设置外部应用程序的基本路径。
答案 1 :(得分:0)
如果您的Starup.cs
:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "custom",
template: "app/custompath/{controller=Home}/{action=Index}");
});
然后你可以这样做重定向:
var url = Url.RouteUrl("custom", new { controller = "controller2", action = "action" });
return Redirect(url);
顺便提一下,如果需要,.NET Core内置URL Rewrite。