在开发Silverlight应用程序时
我们经常会遇到这样一种情况
需要在Silverlight应用程序的UserControl中获取ASP
NET页面参数
这个参数不一定来自于当前Silverlight应用程序的宿主页面
而有可能来自于其它的ASP
NET页面
本文我们简单的介绍一下如何在Silverlight应用程序中获取ASPNET页面参数
需求
如下面的项目结构我们会在Defaultaspx页面中需要传递两个值到SilverlightTestPageaspx页面并且需要在SilverlightTestPageaspx页面所宿主的Silverlight应用程序中获取并显示
其中Defaultaspx页面看起来如下图所示
在单击Submit按钮时转向SilverlightTestPageaspx页面并传递两个参数如下代码所示 protected void btnSubmit_Click(object sender EventArgs e)
{
ResponseRedirect(StringFormat(SilverlightTestPageaspx?username={}&email={}
thistxtUserNameText
thistxtEmailText));
}
使用InitParams
第一种方法我们自然会使用InitParams属性
在Silverlight宿主页面加载时我们在ASPX页面中获取参数并作为初始化参数传递给Silverlight应用程序如下代码所示
protected void Page_Load(object sender EventArgs e)
{
thisXamlInitParameters = StringFormat(username={}email={}
RequestQueryString[username]
RequestQueryString[email]);
}
然后在Silverlight应用程序的UserControl中设置两个属性如下代码所示 public String UserName
{
set {
thislblUserNameText = value;
}
}
public String Email
{
set {
thislblEmailText = value;
}
}