ASP.NET MVC 4 RedirectToAction无法正常工作

时间:2014-09-12 14:45:53

标签: c# asp.net-mvc-4

我创建了一个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 }
); 

1 个答案:

答案 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应用程序,如果这是适合你的解决方案。