2011-01-06 15 views
0

誰もが、どのように(そして何が最善の方法であろうと)経路を設定して、ASP.Net MVC 3に次のURLを共存させることができますか? ProductController幅のindexアクションへこれらのルートは共存できますか?

/Product/a38e8843-195f-4ee8-b89a-2549b753a307 

マップの会員コントローラ

上でアクションをログオンするID = a38e8843-195f-4ee8-b89a-2549b753a307

/MemberShip/LogOn 

マップIはI'LLを把握何とか特定のコントローラに基づいていくつかの設定を行う必要があります - 私はちょうど方法を知らない! :)

+0

ここでは、ルーティング、きっとMVC上のチュートリアルをたくさん見つけると、することができます。 – jfar

答えて

2

デフォルトルートの前に次のルートを追加する必要があります

"Products/{productId}" and "MemeberShip/{action}" 

その特定のコントローラとアクションを指している一人一人を。

正常にあなたの行動を作成します。

パブリッククラス製品:コントローラ { 公共アクションViewProduct(文字列PRODUCTID) { ...

パブリッククラスメンバーシップ:コントローラー { 公共アクションログオンを( ) { ...

ルートをマッピングするときは、具体的なルートを2つ追加してください: routes.MapRoute( "ViewProduct"、 "Products/{productId}"、 new {controller = "Products"、action = "ViewProduct"} ); routes.MapRoute( "Logon"、 "Membership/{action}"、 new {controller = "Membership"} );

デフォルトルートを使用している場合、この最後のルートはパターン "コントローラ/アクション"上にあるため、不要です。彼らはお互いに尊重している場合のみ http://www.asp.net/mvc/tutorials/asp-net-mvc-overview-cs

+1

実際には、2番目のルートはデフォルトルートでは問題ありません –

+0

2番目のルートは必要ありません。 – RPM1984

+0

プロダクトIDに正規表現制約を付けることをお勧めします(私はあなたのproductIdsが標準化されていると仮定しています)製品コントローラが故障する可能性があります。 – Chao

関連する問題