2011-08-12 19 views
9

特定のアクションが実行された場合、ユーザーがいくつかの追加のクエリ文字列パラメータを使用してページにリダイレクトするユーザーコントロールがあります。ユーザーコントロールの親ページのURLを見つける方法

UserControl.ascxがHome.aspx上にある場合、私はHome.aspx?action = trueにリダイレクトしたい、UserControl.ascxがProfile.aspx上にあった場合、Profile.aspx?actionにリダイレクトしたい= true

基本的に、私のUserControl.ascx.csでは、親ページのURLを取得したいと思います。どうすれば入手できますか?

答えて

14
あなたは Request.Urlで見ることができ

Request.RawUrlRequest.FilePath、およびRequestオブジェクトの他の同様の性質のいくつか - あなたはこれを使用している方法に応じ。

ブラウザから要求されたURLが表示されます。これにより、コントロールがどのページに表示されているかがわかります。

+0

Request.Urlが可能System.Uri持ち帰る - [ここMSDN]上の(http://msdn.microsoft.com/en-us/library/system.uri.aspx) – mlhDev

2

あなたはまだユーザーコントロールからのリクエストオブジェクトへのアクセス権を持っているので、このような何か:

string currentUrl = Request.Url.AbsoluteUri.ToString(); 
1

Request.UrlReferrerは、通常は...あなたの前のページのURLを取得します。それが空である可能性がある状況があります。

  • リンクは、電子メールメッセージからデスクトップに保存
  • ショートカット
  • 偽装されたURL
  • おそらくいくつかの設定やブラウザ
  • おそらく他のシナリオとしてをクリックよく

UrlReferrerが空であるか無効であるときにあなたのコードが "うまく演奏する"限り、あなたは良いと思うはずです。

-1
Request.Url.Scheme + "://" + Request.Url.Host + Request.RawUrl 
+0

あなたの応答はもっとだろうがなぜそれが問題を解決するのかを説明した場合に役立ちます。 –

関連する問題