【asp源码栏目提醒】:网学会员,鉴于大家对asp源码十分关注,论文会员在此为大家搜集整理了“技巧:Silverlight应用程序中如何获取ASP NET页面参数 - 培训资料”一文,供大家参考学习!
概述 在开发Silverlight应用程序时,我们经常会遇到这样一种情况,需要在Silverlight应用程序的UserControl中获取
ASP.NET页面参数,这个参数不一定来自于当前Silverlight应用程序的宿主页面,而有可能来自于其它的
ASP.NET页面。
本文我们简单的介绍一下如何在Silverlight应用程序中获取
ASP.NET页面参数。
需求 如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面,并且需要在SilverlightTestPage.aspx页面所宿主的Silverlight应用程序中获取并显示: 其中Default.aspx页面看起来如下图所示: 在单击“Submit”按钮时,转向SilverlightTestPage.aspx页面,并传递两个参数,如下代码所示: protected void btnSubmit_Clickobject sender EventArgs e Response.RedirectString.FormatSilverlightTestPage.aspxusername0email1 this.txtUserName.Text this.txtEmail.Text 使用InitParams 第一种方法,我们自然会使用InitParams属性,在Silverlight宿主页面加载时,我们在ASPX页面中获取参数,并作为初始化参数传递给Silverlight应用程序,如下代码所示: protected void Page_Loadobject sender EventArgs e this.Xaml1.InitParameters String.Formatusername0email1 Request.QueryStringusername Request.QueryStringemail 然后在Silverlight应用程序的UserControl中设置两个属性,如下代码所示: public String UserName set this.lblUserName.Text value public String Email set this.lblEmail.Text value 这样就可以在Application_Startup事件中获取初始化参数,并传递给UserControl,如下代码所示: private void Application_Startupobject sender StartupEventArgs e Page page new Page page.UserName e.InitParamsusername page.Email e.InitParamsemail this.RootVisual page 这样我们就通过InitParams来在Silverlight应用程序中获取到了
ASP.NET页面的参数,运行后效果如下图所示: 使用HtmlDocument 其实上面的方法获取
ASP.NET页面中参数有些麻烦,我们可以直接使用HtmlDocument,在HtmlDocument中定义了QueryString属性,如下代码所示: 这样我们可以在Silverlight直接使用HtmlDocument对象来获取当前Silverlight应用程序宿主页面中的参数,如下代码所示: void Page_Loadedobject sender RoutedEventArgs e IDictionary paras HtmlPage.Document.QueryString this.lblUserName.Text parasusername this.lblEmail.Text parasemail