2012-04-24 42 views
7

私は、約9台のコントローラを持つより大きなプロジェクトを持っています。今度はプロジェクトの最後に、urlのrequeirementが変更されます。このような状況での最善の対処方法 - コントローラの名前を変更することはあまりにも面倒なようだ...私はservercode内のすべてのリンクを変更する必要があるとJavaScript名前を変更するコントローラasp.net mvc

+0

また、IISのURLリライトを見ることができます – Chandermani

+0

ReSharper6は仕事をしているものです.. –

+0

注:C#のメソッド命名規則に反して、URLで指定する必要があるアクションでダッシュを使用できます私はしばらくそれを学ぶ)。参照してください:http://stackoverflow.com/questions/30310/asp-net-mvc-how-do-i-enable-dashes-in-my-urls – Faust

答えて

6

あなたの問題は、既存のルートを変更することで解決することができます。あなたのglobal.asaxでは、コントローラ、アクションとIDにURL「/コントローラ/アクション/ ID」をマッピングし、この

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

のようなコードの断片を見つけることができます。このようなルートを指定すると、コントローラが/ SomeChangedURLBase ...にリクエストをルーティングするために、このようなルートを提供することができます。

ビューで生成されたリンクがデフォルトルートを指し、古いURLを生成しないようにするには、これらのルートをデフォルトルートの前に登録する必要があることに注意してください。

+0

私はこれを実装した後に実現しました:私のブラウザの内部に私はまだ見る定期的にアプリケーションを参照すると古いURLが表示されますが、新しいURLが受け入れられます。これを変更する方法 - 新しいURLが表示されるようにするには? –

+0

これはRoute ordering/ActionLink buildingに問題がある可能性があります。 ActionLinksの代わりにRouteLinkを使用してリンクを生成することができます。 – saintedlama

+0

あなたのページでActionLinksを使用していて、コントローラーとアクションを指している場合は、ルートコレクション内の古いURLの前に配置されている場合は、新しいURLを使用します。 –

関連する問題