窍门技巧:Silverlight应用程序中如何获取ASP.NET页面参数

  概述  在开发Silverlight应用我们经常会遇到这样种情况需要在Silverlight应用UserControl中获取ASP.NET页面参数这个参数不定来自于当前Silverlight应用宿主页面而有可能来自于其它ASP.NET页面

  需求  如下面项目结构我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面并且需要在SilverlightTestPage.aspx页面所宿主Silverlight应用中获取并显示:

窍门技巧:Silverlight应用<img src='/icons/22475chengxu.gif' />中如何获取ASP.NET页面参数

  其中Default.aspx页面看起来如下图所示:

窍门技巧:Silverlight应用<img src='/icons/22475chengxu.gif' />中如何获取ASP.NET页面参数

  在单击“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
{
   {
    this.lblUserName.Text = value;
  }
}
public String Email
{
   {
    this.lblEmail.Text = value;
  }
}
  这样就可以在Application_Startup事件中获取化参数并传递给UserControl如下代码所示:

private void Application_Startup(object sender, StartupEventArgs e)
{
  Page page = Page;
  page.UserName = e.InitParams["username"];
  page.Email = e.InitParams["email"];
  this.RootVisual = page;
}
  这样我们就通过InitParams来在Silverlight应用中获取到了ASP.NET页面参数运行后效果如下图所示:

窍门技巧:Silverlight应用<img src='/icons/22475chengxu.gif' />中如何获取ASP.NET页面参数

  使用HtmlDocument  其实上面思路方法获取ASP.NET页面中参数有些麻烦我们可以直接使用HtmlDocument在HtmlDocument中定义了QueryString属性如下代码所示:

窍门技巧:Silverlight应用<img src='/icons/22475chengxu.gif' />中如何获取ASP.NET页面参数

  这样我们可以在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应用<img src='/icons/22475chengxu.gif' />中如何获取ASP.NET页面参数

  整理总结  本文内容非常简单介绍了如何在Silverlight应用中获取ASP.NET页面参数希望对大家有所帮助

Tags: 

延伸阅读

最新评论

发表评论