概述
在开发Silverlight应用程序时,我们经常会遇到这样一种情况,需要在Silverlight应用程序的UserControl中获取ASP.NET页面参数,这个参数不一定来自于当前Silverlight应用程序的宿主页面,而有可能来自于其它的ASP.NET页面。
需求
如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面,并且需要在SilverlightTestPage.aspx页面所宿主的Silverlight应用程序中获取并显示:
其中Default.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
protected void Page_Load(object sender,EventArgs e) { this.Xaml1.InitParameters = String.Format("username={0},email={1}",Request.QueryString["username"],Request.QueryString["email"]); }
public String UserName { set { this.lblUserName.Text = value; } } public String Email { set { this.lblEmail.Text = value; } }
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; }
使用HtmlDocument
void Page_Loaded(object sender,RoutedEventArgs e) { IDictionary<String,String> paras = HtmlPage.Document.QueryString; this.lblUserName.Text = paras["username"]; this.lblEmail.Text = paras["email"]; }
运行后可以看到与上面的效果一致:
总结
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。