|
概述
在開發(fā)Silverlight應(yīng)用程序時(shí),我們經(jīng)常會遇到這樣一種情況,需要在Silverlight應(yīng)用程序的UserControl中獲取ASP.NET頁面參數(shù),這個(gè)參數(shù)不一定來自于當(dāng)前Silverlight應(yīng)用程序的宿主頁面,而有可能來自于其它的ASP.NET頁面。
本文我們簡單的介紹一下如何在Silverlight應(yīng)用程序中獲取ASP.NET頁面參數(shù)。
需求
如下面的項(xiàng)目結(jié)構(gòu),我們會在Default.ASPx頁面中需要傳遞兩個(gè)值到SilverlightTestPage.ASPx頁面,并且需要在SilverlightTestPage.ASPx頁面所宿主的Silverlight應(yīng)用程序中獲取并顯示:
其中Default.ASPx頁面看起來如下圖所示:
在單擊“Submit”按鈕時(shí),轉(zhuǎn)向SilverlightTestPage.ASPx頁面,并傳遞兩個(gè)參數(shù),如下代碼所示:
protected void btnSubmit_Click(object sender, EventArgs e){ Response.Redirect(String.Format("SilverlightTestPage.ASPx?username={0}&email={1}", this.txtUserName.Text, this.txtEmail.Text));}
使用InitParams
第一種方法,我們自然會使用InitParams屬性,在Silverlight宿主頁面加載時(shí),我們在ASPX頁面中獲取參數(shù),并作為初始化參數(shù)傳遞給Silverlight應(yīng)用程序,如下代碼所示:
protected void Page_Load(object sender, EventArgs e){ this.Xaml1.InitParameters = String.Format("username={0},email={1}", Request.QueryString["username"], Request.QueryString["email"]);}
然后在Silverlight應(yīng)用程序的UserControl中設(shè)置兩個(gè)屬性,如下代碼所示:
public String UserName{ set { this.lblUserName.Text = value; }}public String Email{ set { this.lblEmail.Text = value; }}
這樣就可以在Application_Startup事件中獲取初始化參數(shù),并傳遞給UserControl,如下代碼所示:
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應(yīng)用程序中獲取到了ASP.NET頁面的參數(shù),運(yùn)行后效果如下圖所示:
使用HtmlDocument
其實(shí)上面的方法獲取ASP.NET頁面中參數(shù)有些麻煩,我們可以直接使用HtmlDocument,在HtmlDocument中定義了QueryString屬性,如下代碼所示:
這樣我們可以在Silverlight直接使用HtmlDocument對象來獲取當(dāng)前Silverlight應(yīng)用程序宿主頁面中的參數(shù),如下代碼所示:
void Page_Loaded(object sender, RoutedEventArgs e){ IDictionary<String, String> paras = HtmlPage.Document.QueryString; this.lblUserName.Text = paras["username"]; this.lblEmail.Text = paras["email"];}
運(yùn)行后可以看到與上面的效果一致:
總結(jié)
本文的內(nèi)容非常簡單,介紹了如何在Silverlight應(yīng)用程序中獲取ASP.NET頁面參數(shù),希望對大家有所幫助。
NET技術(shù):Silverlight應(yīng)用程序中如何獲取ASP.NET頁面參數(shù),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。