2011-06-28 8 views
0

私はmvcアプリケーションをデプロイするときに、ページ(ビュー)間を移動するときにパスが正しく機能するようになっています。ウェブデプロイメントURLパスmvc

私の開発環境では、基本的に私のランディングページはlocalhost:1910ですが、展開すると、ランディングページはlocalhost/ITSMngrです。

したがって、私のすべてのリンクにはITSMngrセクションがありません。例えば私のようなリンクを持っている場合:?DataBaseMngは、コントローラの名前で、アクションを編集し、それが最終的に/ DataBaseMng /編集]をlocalhostにそれをマッピングしますので、それは私のdevの環境では正常に動作します

<a href="/DataBaseMng/[email protected]" > 

をID = 2か何か。展開すると、同じパスにマップしようとしますが、ITSMngrセクションが欠落しているため動作しません。つまり、localhost/ITSMngr/DataBaseMng/Editにマッピングする必要がありますか?id = 2

デフォルトで設定する方法はありますか?常にITSMngrを入力してください。私はGlobal.asax.csの地図ルートを変更しようとしましたが、それはうまくいきません - 100%確信しているわけではありません。

私のリンクの先頭に/を削除すると、一度に動作しますが、あなたが再び戻って移動するとき、それは内部のパスは、すべてのショットであり、それはあなたが組み込み関数を使用する必要がありますMVCアプリケーションでLO

答えて

0

かもしれないのですハードコーディングする代わりにURLSを生成します。これはあなたのためにそれをすべての世話をする、との

代わりにあなたのglobal.ascxで定義されたルートを利用する必要があります。

<a href="/DataBaseMng/[email protected]" > 

用途:あなたが参照したい場合は

<a href="@Url.Action("Edit", "DataBaseMng", new { id = signData.SignDataId })" > 

アクションヘルパーメソッド(実際には推奨されていません)ではなくURLを使用するもの:

@Url.Content("~/DataBaseMng/Edit?id=" + signData.SignDataId.ToString()) 

あなたがアプリケーションをインストールしたところにasp .netがマップされます。

+0

ありがとうございました。あなたが提案した〜を使ってみたことは言及していませんでした。私は@ Url.Actionも好きですが、実装しようとするかもしれません。あなたのご意見ありがとうございます。 – Jason

+0

〜(CSS、スクリプトなどに便利です)を使用する場合は、Url.Content関数