如何在Silverlight應用程式中擷取ASP.NET頁面參數

來源:互聯網
上載者:User

標籤:io   使用   ar   for   art   div   sp   cti   代碼   

asp.net Silverlight應用程式中擷取載體aspx頁面參數

有時候SL應用中需要使用由aspx頁面中傳遞過來的參數值,此時通常有兩種方法擷取

  1. 使用InitParameters屬性,動態設定傳遞參數 。

  2. 在SL工程中使用HtmlPage類來直接擷取頁面參數。

如下面的項目結構,我們會在Default.aspx頁面中需要傳遞兩個值到SilverlightTestPage.aspx頁面,並且需要在SilverlightTestPage.aspx頁面所宿主的Silverlight應用程式中擷取並顯示:

  其中Default.aspx頁面看起來如所示:

  在單擊Submit按鈕時,轉向SilverlightTestPage.aspx頁面,並傳遞兩個參數,如下代碼所示:

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宿首頁面載入時,我們在ASPX頁面中擷取參數,並作為初始化參數傳遞給Silverlight應用程式,如下代碼所示:

protected void Page_Load(object sender, EventArgs e)
{
  this.Xaml1.InitParameters = String.Format(username={0},email={1},
    Request.QueryString[username],
    Request.QueryString[email]);
}

  然後在Silverlight應用程式的UserControl中設定兩個屬性,如下代碼所示:

public String UserName
{
  set {
    this.lblUserName.Text = value;
  }
}
public String Email
{
  set {
    this.lblEmail.Text = value;
  }
}

  這樣就可以在Application_Startup事件中擷取初始化參數,並傳遞給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應用程式中擷取到了ASP.NET頁面的參數

第二種方法:使用HtmlDocument

  其實上面的方法擷取ASP.NET頁面中參數有些麻煩,我們可以直接使用HtmlDocument,在HtmlDocument中定義了QueryString屬性,如下代碼所示:

  這樣我們可以在Silverlight直接使用HtmlDocument對象來擷取當前Silverlight應用程式宿首頁面中的參數,如下代碼所示:

  下面是利用HtmlPage類來擷取參數的代碼:

  代碼如下:

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頁面參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.