1

上司のアプリケーションの URL を次のようにする必要があります。

http://domain.com/Texas/Dallas/72701

ただし、すべての州のコントローラーとすべての都市のアクションを書きたいわけではありません。

routes.MapRoute(
"DrillDown", // Route name
"{controller}/{action}/{ZipId}", 
new { controller = "State", action = "City", ZipId = UrlParameter.Optional} // Parameter     defaults

controller/Action/Param で通常のルートを持つ能力を破壊することなく、State/City/Zip を受け入れるルートのパターンを書くのを手伝ってくれる人はいますか?

辺りを見渡しても方向性が見つからない。

4

2 に答える 2

1

ドメイン パスにパス セグメントをもう 1 つ追加できる場合は、これを非常に簡単に機能させることができます。

routes.MapRoute(
"DrillDown", // Route name
"Location/{State}/{City}/{ZipId}", 
new { controller = "Location",
      action = "DrillDownAction", 
      State= UrlParameter.Optional, 
      City = UrlParameter.Optional,
      ZipId = UrlParameter.Optional
}

これにより、次の形式の URL が得られます: http://www.domain.com/Location/ {State}/{City}/{ZipId}

于 2012-05-30T23:06:55.963 に答える
0

これは、各状態のルートを追加することで可能になります。

routes.MapRoute( 
"TexasDrillDown", // Route name 
"Texas/{City}/{ZipId}",  
new { controller = "DrillDownController", action = "DrillDownAction", ZipId = UrlParameter.Optional});

ただし、状態よりも他のコントローラーが少ない場合は、DrillDown をデフォルト ルートにして、他のコントローラーを次のように手動でマッピングすることをお勧めします。

routes.MapRoute( 
"Users", // Route name 
"Users/{action}/{id}",  
new { controller = "Users", id= UrlParameter.Optional});

routes.MapRoute( 
"DrillDown", // Route name 
"{State}/{City}/{ZipId}",  
new { controller = "DrillDownController", action = "DrillDownAction", ZipId = UrlParameter.Optional});
于 2012-05-30T22:59:18.263 に答える