TerryLee还有一个个人博客主站:http://www.dotneteye.cn,欢迎大家常去坐坐。

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

上一篇 / 下一篇  2008-07-10 22:57:18 / 个人分类:Silverlight

概述

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

本文我们简单的介绍一下如何在Silverlight应用程序中获取ASP.NET页面参数。

需求

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

TerryLee_0103

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

TerryLee_0104

在单击“Submit”按钮时,转向SilverlightTestPage.aspx页面,并传递两个参数,如下代码所示:

protected voidbtnSubmit_Click(objectsender,EventArgse)
{
    Response.Redirect(String.Format("SilverlightTestPage.aspx?username={0}&email={1}",this.txtUserName.Text,this.txtEmail.Text));
}

使用InitParams

第一种方法,我们自然会使用InitParams属性,在Silverlight宿主页面加载时,我们在ASPX页面中获取参数,并作为初始化参数传递给Silverlight应用程序,如下代码所示:

protected voidPage_Load(objectsender,EventArgse)
{this.Xaml1.InitParameters =String.Format("username={0},email={1}",
        Request.QueryString["username"],
        Request.QueryString["email"]);
}

然后在Silverlight应用程序的UserControl中设置两个属性,如下代码所示:

publicStringUserName
{set{this.lblUserName.Text =value;
    }
}publicStringEmail
{set{this.lblEmail.Text =value;
    }
}

这样就可以在Application_Startup事件中获取初始化参数,并传递给UserControl,如下代码所示:

private voidApplication_Startup(objectsender,StartupEventArgse)
{Pagepage =newPage();
    page.UserName = e.InitParams["username"];
    page.Email = e.InitParams["email"];this.RootVisual = page;
}

这样我们就通过InitParams来在Silverlight应用程序中获取到了ASP.NET页面的参数,运行后效果如下图所示:

TerryLee_0105

使用HtmlDocument

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

TerryLee_0106

这样我们可以在Silverlight直接使用HtmlDocument对象来获取当前Silverlight应用程序宿主页面中的参数,如下代码所示:

voidPage_Loaded(objectsender,RoutedEventArgse)
{IDictionary<String,String> paras =HtmlPage.Document.QueryString;this.lblUserName.Text = paras["username"];this.lblEmail.Text = paras["email"];
}

运行后可以看到与上面的效果一致:

TerryLee_0105

总结

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


TAG: silverlight

引用 删除 Guest   /   2008-07-17 01:51:47
TerryLee 大哥的文章都非常实用清晰哦,这个虽然简单,可是真的非常重要啊。哈哈。多谢咯。好人有好报
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar