2011-12-22 7 views
0

私はSilverlightページのコードビハインドから、同じアプリケーションのASPXページに戻ってナビゲートしようとしています。 ASPXページのコードビハインドから "Response.Redirect"を実行するにはどうすればよいですか?私はGoogleを試してみたが、何も実際に動作します。私のSilverlightフォームはUserControl型です。私はそれをPageやsdk:Pageに変更することも、sdk:PageをUserControlタグに埋め込むこともできません。ページは常にデザイナーには分かりません。銀色のレスポンスはありますか?

+0

アプリケーションがナビゲーションフレームワークを使用していますか? http://msdn.microsoft.com/en-us/library/cc838245(v=vs.95).aspx –

+0

ナビゲーションフレームワークでは、XAMLをページ自体として呼び出す必要があります。既存のHTMLページ。通常のASPXページでユーザーコントロールをホストする必要があります。私たちのページテンプレートにはナビゲーションとメニューがたくさんあり、Silverlightは単にページの要素である必要があります。 –

+0

[SilverlightでResponse.Redirectに相当するものは何ですか?](http://stackoverflow.com/questions/7378037/what-is-the-response-redirect-equivalent-in-silverlight)の重複が考えられます。 –

答えて

3

これは私の仕事:

private string GetAbsoluteUrl(string strRelativePath) 
    { 
     if (string.IsNullOrEmpty(strRelativePath)) 
      return strRelativePath; 

     string strFullUrl; 
     if (strRelativePath.StartsWith("http:", StringComparison.OrdinalIgnoreCase) 
      || strRelativePath.StartsWith("https:", StringComparison.OrdinalIgnoreCase) 
      || strRelativePath.StartsWith("file:", StringComparison.OrdinalIgnoreCase)) 
     { 
      strFullUrl = strRelativePath; 
     } 
     else 
     { 
      strFullUrl = System.Windows.Application.Current.Host.Source.AbsoluteUri; 
      if (strFullUrl.IndexOf("ClientBin") > 0) 
       strFullUrl = strFullUrl.Substring(0, strFullUrl.IndexOf("ClientBin")) + strRelativePath; 
      else 
       strFullUrl = strFullUrl.Substring(0, strFullUrl.LastIndexOf("/") + 1) + strRelativePath; 
     } 

     return strFullUrl; 
    } 

移動経由:

 string browserFeatures = "directories=yes,location=yes,menubar=yes,status=yes,toolbar=yes,resizable=yes"; 
     HtmlPage.Window.Navigate(new Uri(GetAbsoluteUrl("SomePage.aspx"), UriKind.Absolute), "_self", browserFeatures); 

編集 - ここでは重複した質問:どこかこの方法置く

What is the Response.Redirect equivalent in Silverlight?

と同様の回答です。

関連する問題