asp.net html silverlight 传参数,Silverlight和ASP.NET相互传参的两种常用方式(QueryString,Cookie)...

Silverlight实用窍门系列:37  程兴亮,网名煦风满裳

在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString。首先我们新建一个名为SLConnectASP.NET的Silverlight应用程序,然后在SLConnectASP.NET.web项目中添加一个Index.aspx的页面。

一、Silverlight和ASPX页面的QueryString传参

实现思路:在Silverlight端跳转到页面到Index.aspx并且传递一个QueryString参数ID,在该Index.aspx页面显示出ID。在Index.aspx页面有一个按钮可以向Silverlight所在页面传递一个参数aspxid,在Silverlight端读取aspxid参数并且显示出来。

首先我们看Silverlight后台代码:

41006859_1.gif#regionQueryString传值//QueryString步骤一privatevoidbutton2_Click(objectsender, RoutedEventArgs e){//传递参数给Asp.net页面HtmlPage.Window.Eval("location='"+Application.Current.Host.Source.AbsoluteUri.Replace( Application.Current.Host.Source.AbsolutePath,"")+"/index.aspx?id=203';");}//QueryString步骤四privatevoidShowQueryString(){//接收到ASP.NET页面传送过来的QueryString值IDictionaryparas=HtmlPage.Document.QueryString;if(paras.ContainsKey("aspxid")) {this.label1.Content="获取到ASP.NET传值:"+paras["aspxid"]; }}#endregion

41006859_1.gif

然后我们来看Index.aspx.cs的代码如下:

41006859_1.gif#regionASP.NET端操作Silverlight传输过来的QueryString值//QueryString步骤二privatevoidBindQueryString(){//ASP.NET端获取到Silverlight传输过来的QueryString值if(Request.QueryString.Count>0) {this.Label1.Text="获取到的Silverlight客户端QueryString值是:"+Request.QueryString["id"].ToString(); }}//QueryString步骤三protectedvoidButton1_Click(objectsender, EventArgs e){//回传QueryString值给Silverlight客户端Response.Redirect("./SLConnectASP.NETTestPage.aspx?aspxid=109");}#endregion

41006859_1.gif

二、Silverlight和ASPX页面的Cookie传参

实现思路:在Silverlight端创建一个Key名为FirCookieKey,Value值为FirCookieValue的Cookie,然后跳转页面到Index.aspx页面,在该页面显示出来。在该页面有一个按钮可以修改这个Cookie,并且跳转回Silverlight端,在Silverlight端读取这个已经被修改过的Cookie并且显示出来。

首先我们看Silverlight端的后台代码MainPage.xaml.cs:包括步骤一创建Cookie、步骤四读取被修改过的Cookie

41006859_1.gif#regionCookie传值//Cookie步骤一privatevoidbutton1_Click(objectsender, RoutedEventArgs e){//编写一个键为FirCookieKey,值为FirCookieValue的CookiestringoldCookie=HtmlPage.Document.GetProperty("cookie")asString; DateTime expiration=DateTime.UtcNow+TimeSpan.FromDays(2000);stringcookie=String.Format("{0}={1};expires={2}","FirCookieKey","FirCookieValue", expiration.ToString("R")); HtmlPage.Document.SetProperty("cookie", cookie);//跳转界面HtmlPage.Window.Eval("location='"+Application.Current.Host.Source.AbsoluteUri.Replace( Application.Current.Host.Source.AbsolutePath,"")+"/index.aspx';");}//Cookie步骤四privatevoidShowCookie(){//显示当前键为FirCookieKey的Cookie值String[] cookies=HtmlPage.Document.Cookies.Split(';');foreach(String cookie1incookies) { String[] keyValues=cookie1.Split('=');if(keyValues[0]=="FirCookieKey") {this.textBox2.Content="Cookie的Key值是:"+keyValues[0];this.textBox1.Content="Cookie的Value值是:"+keyValues[1]; } };}#endregion

41006859_1.gif

接着我们来看Index.aspx.cs,包括Cookie操作二和Cookie操作三

41006859_1.gif#regionASP.NET端获取到操作Cookie值//Cookie操作二privatevoidBindCookie(){//ASP.NET端获取到Silverlight传输过来的Cookie值HttpCookie cookie=Request.Cookies["FirCookieKey"];if(cookie.Value!=null) {this.Label2.Text="获取到的Silverlight客户端Cookie值:"+cookie.Value; }}//Cookie操作三protectedvoidButton2_Click(objectsender, EventArgs e){//回传重新设置Cookie值然后传输给SilverlightHttpCookie cookie=Request.Cookies["FirCookieKey"]; cookie.Value="NewCookieValue"; HttpContext.Current.Response.Cookies.Add(cookie); Response.Redirect("./SLConnectASP.NETTestPage.aspx");}#endregion

41006859_1.gif

最后这两个实例的MainPage.xaml的代码如下:

41006859_1.gif

41006859_1.gif

Index.aspx的代码如下:

41006859_1.gif

41006859_1.gif

本实例采用VS2010+Silverlight 4.0编写。如需源码请点击 SLConnectASP.NET.rar 下载。本实例效果图如下:

41006859_2.jpg

41006859_3.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值