2

ルーティング テーブルを次のように設定しました。

// ... specific routes

routes.MapRoute(
    "aspx", 
    "{controller}.aspx/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional });

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional });

/Foo.aspxこれにより、やのような URL/Fooを に適切にルーティングできますFooController.Index。これは下位互換性のために追加されたと思います。ただし、 を使用UrlHelperして URL を生成するために を使用する場合UrlHelper.Action、より醜いバージョンの URL が使用されます。たとえば、Url.Action("Bar", "Foo")利回りFoo.aspx/Barです。

生成された URL がよりクリーンなDefaultルートを使用するようにします。これは、2 つのMapRoute呼び出しを交換すると機能しますが、プレースホルダーに含まれていると見なされるため、/Foo.aspxルーティングされなくなります。FooController.aspx{controller}

ルートをルートの前にMapRoute配置し、両方を機能させることができるURL パラメータの方法はありますか?Defaultaspx

4

1 に答える 1