2011-01-03 9 views
2

私には面白い問題があります。Mono asp.net Windows .net-4.0では動作しているが、モノ2.8では動作していないMVC2ルート

Monoのxsp4は、すべての要求に対して最初のルートを適用しているようです。

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 



    routes.MapRoute(
     "Identities", 
     "{identity}", 
     new { controller = "Identity", action = "Index" } 
     ); 

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

    routes.MapRoute(
     "Static Routes", 
     "", 
     new { controller = "Home", action = "Index" } 
     ); 
} 

をそう/ thomasvjamesを要求するときに& /ホーム/についてのウィンドウで、すべてが正常に動作しますが、モノにxsp4について/ホーム/要求するとき、それはまだ「アイデンティティ」にマップルート:

このウィンドウに取り組ん

identityパラメータは "Home"に設定されています。

私は(うまくいけば既存の)モノのバグを発見しましたか、両方のプラットフォームでこの作業を行うために私のルートを並べ替えることができますか?

私は制約付きキャッチオール型IDルートを試しましたが、これもモノラルでも動作させることができませんでした。

[編集:回答] この質問に対する回答は、最新のモノの入手可能なビルドにアップグレードしたことです。 novビルドが必要なときに、最近2.8(oct)のビルドを使用していませんでした。

問題を解決しました。以下の問題は、期待どおりに機能します。

+0

検索何が既に、ここに存在してhttp://www.mono-project.com/Bugs –

答えて

1

私が持っているMVCの本は、より具体的なエントリをLESS固有のエントリの前に置くことであることを示しているので、順序が間違っています。この理由はあなたが記述したものです:リストを順番に走査し、一致する最初のエントリを見つけます。あなたのルーティングテーブルがあるべきこれらの変更により

: `

routes.MapRoute(
    "Static Routes", 
    "", 
    new { controller = "Home", action = "Index" } 
    ); 

    routes.MapRoute(
    "Identities", 
    "{identity}", 
    new { controller = "Identity", action = "Index" } 
    ); 

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

おかげで、それは私のオリジナルのルーティングした場合。すべてのページが "Home/Index"であり、基本的に同じ問題がありました。私は "静的経路"を最後まで移動したので無視されました。 –

+0

あなたはバグを発見したようですね。多分パッチがあるか、Monoで問題を修正できる場合は、パッチを提出することができます。 – Brian

関連する問題