質問

ルーティングを有効にした ASP.NET 3.5 Web フォーム プロジェクトがあります。また、プロジェクトには、現在表示されているページに基づいてさまざまな動作を行うコントロールが多数あります。この異なる動作を制御する最も簡単な方法は、ページの読み込みにどのルートが使用されたかを発見し、それに応じて処理を行うことだと思われます。

ただし、実際のリクエスト URL を調べて正規表現を実行してルート バーを検出する方法は見つからないようです。これはあまり良くありません。誰か他の方法で調べる方法を知っていますか?

アップデート:ASP.NET 4.0 ではこれを行う方法はまだないようです。他の誰かがこれを理解したといいのですが?

役に立ちましたか?

解決

Phil Haack が自分のサイトのブログ投稿でこの質問に答えているようです。 http://haacked.com/archive/2010/11/28/getting-the-route-name-for-a-route.aspx

他のヒント

.NET 4つのWebフォームアプリケーションでは、Iは、経路定義を決定するためにこれを使用する。

 string myOperation =
     ((System.Web.Routing.Route)(Page.RouteData.Route)).Url;

 //string has value "Stop" or "Start"

のは、あなたのルートがとても似ているとしましょう

        routes.MapPageRoute("StopEmailAlerts",
            "Stop/{SomeToken}",
            "~/Emailing.aspx", false);

        routes.MapPageRoute("SendEmailAlerts",
            "Start/{SomeToken}",
            "~/Emailing.aspx", false);    

ルート名を取得/設定するために使用できる簡単な拡張メソッドをいくつか投稿しました。 役職. 。(私にとっては) Haack の解決策よりも簡単に思えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top