2012-04-14 10 views
2

のための所望の経路を使用していません私のウェブサイトが 'fb'サブパス接頭辞でアクセスされると、私のウェブサイトロジックは少し違った方法で実行されます。Url.Actionは、私は私のMVC3のウェブサイトで次のルート定義を持つ出力

問題は、私は通常、私のサイトにアクセスしたときにということであり、私は

Url.Action('action' 'controller') 

を実行すると、その後、出力は "のhttp:// localhostの/ FB /コントローラ/アクション" である(例えばhttp://localhost。) 。

私のサイトが 'fb'プレフィックスサブパスでアクセスされたとき、私のUrl.Actionはoutput/fb/controller/actionパスを呼び出し、/controller/actionフォーマットを介してサイトにアクセスしたときと同じコントローラ/アクションにルーティングする必要があります。

'fb'プレフィックスを使用する場合、一時的な情報を保存するために 'fb'ルートが必要です。

+0

私は解決策を持っているかもしれませんが、私は自分の質問に答えることはできません:( – Csabi

答えて

2

私はこのリンク(MVC 3 Routing and Action Links not following expected contextual Route)に基づいて解決策を見つけました。新しいパスプレースホルダが導入され、制約が追加されました。

多分それは十分ではないのですか、これよりもよく知っているが、私のために働くようだ:

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

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