2013-02-21 1 views
6

Webにmvc3アプリケーションをデプロイしました。 Url.Action()メソッドに仮想ディレクトリ名を追加するにはどうすればよいですか?例えばのためのサブディレクトリにホストされているmvc3アプリケーションのURL。

:私はUrl.Actionがアクションを返す

を行うときに、私のアプリケーションがmydomain.comである\アプリ

は今= "/ホーム/は、作成" しかし、私が欲しいのはアクションです= "/ app/Home/Create"を選択します。

何を行う必要がありますか?

答えて

7

あなたはそうする必要はありません。アプリケーションが仮想ディレクトリ(たとえばApp)内のIISに正しく展開されている場合、Url.Action("Create", "Home")ヘルパーは正しいURLである/app/home/Createを生成します。

+1

私はこれを二番目に、私は仮想ディレクトリに複数のアプリケーションをホストし、この問題は一度も起こりませんでした。 – Beyers

+0

ありがとう...これは働いた –

1

ルートマップ

@Url.Action("Index", "Test") 
:(/アプリあなたを与える必要があります)

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

は次に、このようUrl.Actionを使用(NOTEをこのルートは、デフォルトルートの前に表示する必要があります)

Global.asax.csファイルにルートを見つけることができます。

0

あなたがしようとしているのは、AREAを作成することです。 MVCはAreaの使用をサポートし、アプリケーション内のコントローラとアクションをさらに整理します。

詳細は、このMSDNのarcticleをご覧ください。http://msdn.microsoft.com/en-us/library/ee671793(v=vs.100).aspx

0

を最後に、私はUrl.Contentを使用していますメインまたはサブディレクトリでホストされているかどうかを全体のURLを返します(「〜/ホーム/作成」)。

関連する問題