2012-04-13 12 views
2

私が使用できる現在のアクションを取得したいかどうかを知っています。私のルートが許可されている場合ルートデータからアクション名を取得

ControllerContext.RouteData.GetRequiredString("action") 

しかしhttp://mydomain/this has spaces

は、どのように私は何を "This Has Spaces" を得るのではなく、 "ThisHasSpaces" でしょうか?あなたのルートは、あなたが実際にルーティングするためにURIをマップしないので、あなたに(Request.Uri以外の)元の文字列を与えることができる何もないことのように見える場合はここで

は私のルートテーブルからの抜粋

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

をあなたは本当に 'ThisHasSpaces'を得るのですか? – jgauffin

+0

はい私はコントローラー内のアクション名であり、私のルートテーブルはスペースを非スペースバージョンに変換します – griegs

答えて

2

ですパラメータ。

あなたが別の値を追加できルートハードコーディングするので:

routes.MapRoute(
     "ThisHasSpaces", // Route name 
     "This Has Spaces", // URL with parameters 
     new { controller = "Home", action = "ThisHasSpaces", orgstring = "This Has Spaces", id = UrlParameter.Optional } // Parameter defaults 
    ); 

をして、それをフェッチ:

ControllerContext.RouteData.Values["orgstring"] 
+0

Brilliant、ありがとう – griegs

関連する問題