2013-02-21 57 views
6

我已經在web上部署了mvc3應用程序。如何在Url.Action()方法中添加虛擬目錄名稱?在子目錄中託管的mvc3應用程序的Url.Action

用於例如:我的應用程序是在mydomain.com \ APP

現在,當我做

Url.Action回報行動= 「/首頁/新建」,但我想是行動=「/ app/Home/Create」。

應該做什麼?

回答

7

你不應該那樣做。如果您的應用程序在虛擬目錄(如App)中正確部署在IIS中,則Url.Action("Create", "Home")幫助程序將生成/app/home/Create,這是正確的URL。

+1

我第二次,我在虛擬目錄中託管多個應用程序,從來沒有這個問題。 – Beyers 2013-02-21 14:35:37

+0

謝謝...這工作 – 2013-02-22 05:07:11

1

地圖的路線(注意:這條路線已經出現的默認路由前)

 context.MapRoute(
      name: "app", 
      url: "app/{controller}/{action}/{id}", 
      defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional } 
     ); 

然後使用Url.Action像這樣的(應該給你/應用):

@Url.Action("Index", "Test") 

你可以在你的Global.asax.cs文件中找到路由。

0

最後我使用Url.Content(「〜/主頁/創建」),它返回整個URL是否託管在主或子目錄。