2011-07-28 10 views
0

私はASP.NET MVC 3に慣れています。私はここにサーバーに私のWebアプリケーションを公開しようとしています。私は統合されたIIS 7で動作していますが、私はアプリケーションのホームページにアクセスできます。ただし、特定のリンクがURLからディレクトリを削除します。例:ASP.NET MVC 3、IIS7,404エラー、正しくルーティングされていませんか?

ホームページのURL: http://localhost/CMS/ - これは、「Contract」、「Customer」、および「Employee」へのリンクを含む最初の画面に移動します。そのうちの1つをクリックすると、...

http://localhost/CMS/Contract(またはいずれかを選択します)そこから、別のカテゴリに分類されます。それらの1つは "Create Contract"です。ここで問題は私が持っている:そのURLは

http://localhost/Contract/Createを指している - 完全にCMSの部分を省略し、404を投げている。私はCMSバックを挿入することでそれに到達することができ、それらのページは正しくルーティングされます。

何が間違っている可能性がありますか?自分のコードなどの情報が必要な場合はお知らせください。

+1

あなたはいくつかのコードを投稿することができますか? – Mrchief

+0

Contract、Customer、およびEmployeeコントローラはそれぞれありますか? – hunter

答えて

2

あなたは

routes.MapRoute("Contract", "Contract/{action}", 
    new { controller = "cms", action = "index" } 
); 

を期待するものよりもルートで代替コントローラを定義することができ、あなたのページ

<%=Html.ActionLink("Contract", "create", "cms") %> 

ではなく、それを古いをやっ以内にこのようなあなたのリンクを構築する必要があります

<a href="<%=ResolveUrl("~/Contracts/Create") %>">Contracts</a> 

どのようなサイドステップルーティング。あなたは追加のルートを必要としますが、あなたが@Url.Action("action", "controller");を使用する必要がコントローラアクションへのあなたのパスを使用している場合はHtmlHelperの

+0

私はこれを試してみて、あなたに戻って取得します。私はすでにActionLinkをすべて使用しています。感謝:) – ibarczewski

+0

私を混乱させる何が、私はそれをローカルにデバッグするとき、それは完全に正常に動作していることです。それは404'ingそれを公開している。 – ibarczewski

+0

は私がリンクの一部は、実際にActionLinkedていなかったことを実現していなかった馬鹿。これで修正されました。本当にありがとう。 :) – ibarczewski

関連する問題