著作権:
オリジナル作品、再現可能、転載ハイパーリンクの記事の形式を識別するようにしてください
元のソース
、著者情報と、この文を。それ以外の場合は、責任を負いません。
http://terrylee.blog.51cto.com/342737/87093
|
アウトライン
Silverlightアプリケーションを開発するとき、私たちはしばしばこのような状況に遭遇、あなたは、ユーザーコントロールのSilverlightアプリケーションでASP.NETページのパラメータを取得する必要があり、このパラメータは、必ずしも現在のホストのSilverlightアプリケーションからのページではありませんが、そこに来るかもしれません他のASP.NETページへ。
この記事では、Silverlightアプリケーションでは、単純なASP.NETページのパラメータを取得する方法について説明します。
需要
次のプロジェクト構造、我々は、Default.aspxのページSilverlightTestPage.aspxページに2つの値を渡す必要があり、ホストのSilverlightアプリケーションのSilverlightTestPage.aspxページを取得して表示する必要があります。
下記に示すように、Default.aspxページに見える特徴:
次のコードに示すように、2つのパラメータを渡して「送信」ボタン、SilverlightTestPage.aspxページめくりをクリックすると:
保護されたボイド btnSubmit_Click(オブジェクト送信者、のEventArgsの E) { Response.Redirectを(文字列 .Format("SilverlightTestPage.aspx名= {0}&Eメール= {1}?"、 この .txtUserName.Text、 この .txtEmail.Text))。 } 使用InitParams
第一の方法は、我々は、ページがホストシルバーASPXページ・パラメータにロードされたとき、我々は得る、天然InitParamsプロパティを使用し、次のコードに示すように、初期化パラメータとしてSilverlightアプリケーションに渡されます。
保護されたボイドをPage_Load(オブジェクト送信者、のEventArgsの E) { この .Xaml1.InitParameters = ストリング .Format("ユーザ名= {0}、メール= {1}" 、 場合、Request.QueryString [ "ユーザ名" ]、 場合、Request.QueryString [ 「メール" ])。 }
次に、2つのプロパティ、ユーザーコントロールのSilverlightアプリケーションで、以下に示すコードを設定します。
パブリック文字列ユーザー名 { 集合 { この .lblUserName.Text = 値。 } } パブリック文字列のメール { 集合 { この .lblEmail.Text = 値。 } } private void Application_Startup(object sender, StartupEventArgs e) { Page page = new Page(); page.UserName = e.InitParams["username"]; page.Email = e.InitParams["email"]; this.RootVisual = page; }
这样我们就通过InitParams来在Silverlight应用程序中获取到了ASP.NET页面的参数,运行后效果如下图所示:
使用HtmlDocument
其实上面的方法获取ASP.NET页面中参数有些麻烦,我们可以直接使用HtmlDocument,在HtmlDocument中定义了QueryString属性,如下代码所示:
这样我们可以在Silverlight直接使用HtmlDocument对象来获取当前Silverlight应用程序宿主页面中的参数,如下代码所示:
void Page_Loaded(object sender, RoutedEventArgs e) { IDictionary<String, String> paras = HtmlPage.Document.QueryString; this.lblUserName.Text = paras["username"]; this.lblEmail.Text = paras["email"]; }
运行后可以看到与上面的效果一致:
总结
本文的内容非常简单,介绍了如何在Silverlight应用程序中获取ASP.NET页面参数,希望对大家有所帮助。
本文出自 “TerryLee技术专栏” 博客,请务必保留此出处http://terrylee.blog.51cto.com/342737/87093 本文出自 51CTO.COM技术博客 |
转载于:https://www.cnblogs.com/hdjjun/archive/2008/12/24/1361563.html