2

ルート ホスティング ディレクトリにマップされているドメインがexample.com. GoDaddy は、他のドメインをルートのサブディレクトリに強制的にマッピングします。たとえば、私の 2 番目のドメインexample1.comは にマッピングされていexample.com/example1ます。

ASP.NET MVC サイトをそのようなサブディレクトリにアップロードしましたが、ナビゲーション用の ActionLinks が次の形式になっていることがわかりました。

http://example1.com/example1/Controller/Action

つまり、サブディレクトリにマップされたドメインを使用しても、サブディレクトリは引き続き URL で使用されます。ActionLinks の形式を変更したいと考えています。

ただし、次の場所に移動しても同じパスにアクセスできることに気付きました。

http://example1.com/Controller/Action

(サブディレクトリは除外)

必須ではないため、ActionLinks がサブディレクトリを自動的にドロップするようにしたいと考えています。

ActionLinks をプレーンな古い URL に変更せずにこれは可能ですか?

4

2 に答える 2

1

いいえ、そうは思いません。アクション リンクは主にコントローラー/アクションをレンダリングするために機能します。もう 1 つの回避策は、サーバーへのインストール アクセス権がある場合、iirf.codeplex.com などの URL 書き換えツールを使用することです。これは無料で、かなりうまく機能します。ただし、実行内容によっては、書き換えによって意図しない結果が生じる場合があります。

HTH。

于 2010-06-09T19:16:50.293 に答える
1

サブディレクトリから順番に、global.asax に追加のルート ステートメントを追加してみてください。例:

routes.AddRoute("example1/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.AddRoute("{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });

ルートはグローバル asax から順番にチェックされると思いますので、リクエストを適切な場所に効果的にルーティングできます。ただし、リンクの URL には「example1」フォルダーが含まれています。

于 2010-06-09T19:17:03.940 に答える