0

ASP.NET c# プロジェクト... 非常に単純なページ ルートを実行しようとしています。

これが実際に動的ルーティングを行っているわけではないことを知っていることに注意してください...理由により、このようにIDをハードコーディングしています。

例:

  RouteTable.Routes.MapPageRoute("Test", "ABC", "~/Test.aspx?id=101");

問題なくhttp://www.mysite.com/ABCを参照でき ます。ページ Test.aspx が読み込まれ、ルーティングは期待どおりに機能しています。

しかし...私はどこへid=101行ったのですか?

  Request.QueryString["id"] \\ is null...
  Page.RouteData.Values["id"] \\ is null...

ルーティングのターゲット リソースでハードコードされた ID を取得するにはどうすればよいですか?

4

1 に答える 1

0

DataTokens を渡すことで機能しました。

私の現実のシナリオでは、URL パラメーターがどうなるかわかりません (質問のように「id」だけが存在する可能性があります... または、他にも存在する可能性があり、場合によっては存在しない可能性があります)。

最初に「?」があるかどうかを確認します。ルーティング ターゲット内の文字...存在する場合:

  1. 「?」の後に文字列を実行します。HttpUtility.ParseQueryString を介した文字
  2. 次に、そのコレクションをループして System.Web.Routing.RouteValueDictionary に追加します。
  3. 次に、DataTokens プロパティを RouteValueDictionary に設定して、最後にルートを追加します。
于 2013-11-01T06:18:57.857 に答える