2014-09-12 133 views
0

我創建了一個MVCApplication和它的作品目錄中的我的服務器上是這樣的:ASP.NET MVC 4 RedirectToAction不能正常工作

http://www.mywebsite.com/MyApp/ 

當我使用RedirectToAction這樣;

return RedirectToAction("Index", "Home"); 

它去;

http://www.mywebsite.com/Home/Index 

但我想重定向到;

http://www.mywebsite.com/MyApp/Home/Index); 

我該如何解決?

編輯---

我的路由配置是這樣的;

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 
+2

是否將目錄設置爲應用程序? – Peter 2014-09-12 14:53:34

+0

你可以發佈你有的路線配置嗎?它應該位於Global.asax中的Application_Start中(或者從那裏調用的方法之一)。 – 2014-09-12 14:57:49

+0

是的,這是一個應用程序@Peter – 2014-09-12 15:06:42

回答

-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應用程序。

+0

我該如何強制使用此路線? – 2014-09-12 15:07:16

+0

有其他事情正在發生,他現有的路由配置應該工作。 – mxmissile 2014-09-12 15:19:49

+0

這是一個黑客攻擊並且只包含一個較低級別的問題(這聽起來像在IIS中沒有正確設置)。 – 2014-09-12 15:28:52