kagula
2012-2-27
学习环境
Win7SP1
VS2010SP1
第一种:GET方式传值
Silverlight源码
using System; using System.Collections.Generic; using System.Windows.browser; using System.Windows.Controls; using System.Windows; namespace SilverlightApplication2 { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); ShowQueryString(); } //切换到aspx页面 private void button1_Click(object sender,RoutedEventArgs e) { HtmlPage.Window.Eval("location='" + Application.Current.Host.source.AbsoluteUri.Replace( Application.Current.Host.source.AbsolutePath,"") + "/index.aspx?id=123';"); } //接收到ASP.NET页面传送过来的QueryString值 private void ShowQueryString() { IDictionary<String,String> paras = HtmlPage.Document.QueryString; if (paras.ContainsKey("aspxid")) { textBox1.Text = "获取到ASP.NET传值:" + paras["aspxid"]; //this.label1.Content = } } } }
aspx源码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace SilverlightApplication2.Web { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { BindQueryString(); } //ASP.NET端获取到Silverlight传输过来的QueryString值 private void BindQueryString(){ if (Request.QueryString.Count > 0) { this.Label1.Text = "获取到的Silverlight客户端QueryString值是:" + Request.QueryString["id"].ToString(); } } //回传QueryString值给Silverlight客户端 protected void Button1_Click(object sender,EventArgs e){ Response.Redirect("./SilverlightApplication2TestPage.aspx?aspxid=321"); } } }
第二种:Cookie方式传值
Silverlight源码
using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.browser; namespace SilverlightApplication3 { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); ShowCookie(); } private void ShowCookie(){ //显示当前键为FirCookieKey的Cookie值 String[] cookies = HtmlPage.Document.Cookies.Split(';'); foreach (String cookie1 in cookies) { String[] keyvalues = cookie1.Split('='); if (keyvalues[0] == "FirCookieKey") { this.textBox2.Text = "Cookie的Key值是:" + keyvalues[0]; this.textBox1.Text = "Cookie的Value值是:" + keyvalues[1]; } }; } private void button1_Click(object sender,RoutedEventArgs e) { //编写一个键为FirCookieKey,值为FirCookieValue的Cookie string oldCookie = HtmlPage.Document.GetProperty("cookie") as String; DateTime expiration = DateTime.UtcNow + TimeSpan.FromDays(2000); string cookie = 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';"); } } }
aspx源码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace SilverlightApplication3.Web { public partial class index : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { BindCookie(); } private void BindCookie(){ // ASP.NET端获取到Silverlight传输过来的Cookie值 HttpCookie cookie = Request.Cookies["FirCookieKey"]; if (cookie.Value != null) { this.Label2.Text = "获取到的Silverlight客户端Cookie值:" + cookie.Value; } } protected void Button2_Click(object sender,EventArgs e){ //回传重新设置Cookie值然后传输给Silverlight HttpCookie cookie = Request.Cookies["FirCookieKey"]; cookie.Value = "NewCookieValue"; HttpContext.Current.Response.Cookies.Add(cookie); Response.Redirect("./SilverlightApplication3TestPage.aspx"); } } }
参考资料
[1]《Silverlight实用窍门系列:37.Silverlight和ASP.NET相互传参的两种常用方式(QueryString,Cookie)【附带实例源码】》
http://www.cnblogs.com/chengxingliang/archive/2011/04/14/2015085.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。