Web に mvc3 アプリケーションをデプロイしました。Url.Action() メソッドに仮想ディレクトリ名を追加するにはどうすればよいですか?
例:私のアプリケーションは mydomain.com\app にあります
今私がするとき
Url.Action は action="/Home/Create" を返しますが、必要なのは action = "/app/Home/Create" です。
何をすべきですか?
Web に mvc3 アプリケーションをデプロイしました。Url.Action() メソッドに仮想ディレクトリ名を追加するにはどうすればよいですか?
例:私のアプリケーションは mydomain.com\app にあります
今私がするとき
Url.Action は action="/Home/Create" を返しますが、必要なのは action = "/app/Home/Create" です。
何をすべきですか?
あなたはそれをする必要はありません。アプリケーションが仮想ディレクトリ (たとえばApp
) 内の IIS に適切にデプロイされている場合、Url.Action("Create", "Home")
ヘルパーは/app/home/Create
正しい URL を生成します。
ルートをマッピングします(注: このルートはデフォルト ルートの前に表示する必要があります)
context.MapRoute(
name: "app",
url: "app/{controller}/{action}/{id}",
defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional }
);
次に、次のように Url.Action を使用します (/app が表示されます)。
@Url.Action("Index", "Test")
Global.asax.cs ファイルでルートを見つけることができます。
最後に、メインディレクトリまたはサブディレクトリでホストされているかどうかにかかわらず、URL 全体を返す Url.Content("~/Home/Create") を使用しています。
あなたがしようとしているのは、AREAを作成することです。MVC は、Area の使用をサポートして、アプリケーション内のコントローラーとアクションをさらに整理します。
詳細については、この MSDN アークティクルを参照してください: http://msdn.microsoft.com/en-us/library/ee671793(v=vs.100).aspx