我创建了一个MVCApplication,它在我的服务器上的目录中工作,如下所示:
http://www.mywebsite.com/MyApp/
当我像这样使用RedirectToAction
时;
return RedirectToAction("Index", "Home");
它去了;
http://www.mywebsite.com/Home/Index
但我想重定向到;
http://www.mywebsite.com/MyApp/Home/Index);
我该如何解决?
编辑---
我的routeconfig是这样的;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 0 :(得分:-1)
这些重定向遵循您的路由配置。默认路由是{siteUrl} / {controller} / {action},这就是为什么当您为其提供“索引”操作和“主页”控制器时,您将获得您所看到的URL。
您需要指定与此类似的新路线:
MapRoute("CustomRoute", "MyApp/{controller}/{action}";
然后您可以像这样重定向到它:
RedirectToRoute("CustomRoute", new {Controller = "Home", Action = "Index" });
编辑澄清评论 -
也可以使用IIS解决此问题,使MyApp成为应用程序。只有当 MyApp是您在本网站路线开头所需的唯一值时,这才是正确的解决方案。例如,如果您有时需要MyApp / {controller} / {action},有时需要OtherSubfolder / {controller} / {action},则需要使用上面概述的路径(或使用区域)而不是只是更新IIS。
我假设你想要使用MVC的解决方案,所以这就是这里,但你也应该考虑IIS应用程序,如果这是适合你的解决方案。