Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString。
一个名为SLConnectASP.NET的Silverlight应用程序和在SLConnectASP.NET.web项目中添加的Index.aspx的页面。SLConnectASP.NET的Silverlight应用程序:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
ShowQueryString();
ShowCookie();
}
#region QueryString传值
//QueryString步骤一
private void button2_Click(object sender, RoutedEventArgs e)
{
//传递参数给Asp.net页面
HtmlPage.Window.Eval("location='" +
Application.Current.Host.Source.AbsoluteUri.Replace(
Application.Current.Host.Source.AbsolutePath, "") + "/index.aspx?id=203';");
}
//QueryString步骤四
private void ShowQueryString()
{
//接收到ASP.NET页面传送过来的QueryString值
IDictionary<String, String> paras = HtmlPage.Document.QueryString;
if (paras.ContainsKey("aspxid"))
{
this.label1.Content = "获取到ASP.NET传值:" + paras["aspxid"];
}
}
#endregion#region Cookie传值
//Cookie步骤一
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';");}
//Cookie步骤四
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.Content = "Cookie的Key值是:" + keyValues[0];
this.textBox1.Content = "Cookie的Value值是:" + keyValues[1]; }
};
}
#endregion
}SLConnectASP.NET.web项目中添加的Index.aspx的页面:
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindQueryString();
BindCookie();
}#region ASP.NET端操作Silverlight传输过来的QueryString值
private void BindQueryString()
{
//ASP.NET端获取到Silverlight传输过来的QueryString值
if (Request.QueryString.Count > 0)
{
this.Label1.Text = "获取到的Silverlight客户端QueryString值是:"
+ Request.QueryString["id"].ToString();
}
}protected void Button1_Click(object sender, EventArgs e)
{
//回传QueryString值给Silverlight客户端
Response.Redirect("./SLConnectASP.NETTestPage.aspx?aspxid=109");
}
#endregion#region ASP.NET端获取到操作Cookie值
//Cookie操作二
private void BindCookie()
{
try
{
// ASP.NET端获取到Silverlight传输过来的Cookie值
HttpCookie cookie = Request.Cookies["FirCookieKey"]; this.Label2.Text = "获取到的Silverlight客户端Cookie值:" + cookie.Value;
}
catch (Exception c)
{ }
}
//Cookie操作三
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("./SLConnectASP.NETTestPage.aspx");
}
#endregion
}现在可不可以定义接口来规范这些方法,通过实现接口来实现这些功能???
一个名为SLConnectASP.NET的Silverlight应用程序和在SLConnectASP.NET.web项目中添加的Index.aspx的页面。SLConnectASP.NET的Silverlight应用程序:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
ShowQueryString();
ShowCookie();
}
#region QueryString传值
//QueryString步骤一
private void button2_Click(object sender, RoutedEventArgs e)
{
//传递参数给Asp.net页面
HtmlPage.Window.Eval("location='" +
Application.Current.Host.Source.AbsoluteUri.Replace(
Application.Current.Host.Source.AbsolutePath, "") + "/index.aspx?id=203';");
}
//QueryString步骤四
private void ShowQueryString()
{
//接收到ASP.NET页面传送过来的QueryString值
IDictionary<String, String> paras = HtmlPage.Document.QueryString;
if (paras.ContainsKey("aspxid"))
{
this.label1.Content = "获取到ASP.NET传值:" + paras["aspxid"];
}
}
#endregion#region Cookie传值
//Cookie步骤一
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';");}
//Cookie步骤四
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.Content = "Cookie的Key值是:" + keyValues[0];
this.textBox1.Content = "Cookie的Value值是:" + keyValues[1]; }
};
}
#endregion
}SLConnectASP.NET.web项目中添加的Index.aspx的页面:
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindQueryString();
BindCookie();
}#region ASP.NET端操作Silverlight传输过来的QueryString值
private void BindQueryString()
{
//ASP.NET端获取到Silverlight传输过来的QueryString值
if (Request.QueryString.Count > 0)
{
this.Label1.Text = "获取到的Silverlight客户端QueryString值是:"
+ Request.QueryString["id"].ToString();
}
}protected void Button1_Click(object sender, EventArgs e)
{
//回传QueryString值给Silverlight客户端
Response.Redirect("./SLConnectASP.NETTestPage.aspx?aspxid=109");
}
#endregion#region ASP.NET端获取到操作Cookie值
//Cookie操作二
private void BindCookie()
{
try
{
// ASP.NET端获取到Silverlight传输过来的Cookie值
HttpCookie cookie = Request.Cookies["FirCookieKey"]; this.Label2.Text = "获取到的Silverlight客户端Cookie值:" + cookie.Value;
}
catch (Exception c)
{ }
}
//Cookie操作三
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("./SLConnectASP.NETTestPage.aspx");
}
#endregion
}现在可不可以定义接口来规范这些方法,通过实现接口来实现这些功能???
解决方案 »
- DropDownList绑定了数据库表,如何给他指定选项?
- 关于页面生成word默认打开视图的问题
- GridView 与checkbox的问题
- 微软官网页面的特效:弹出一区域并屏蔽区域外的元素 如何实现的?
- 如何用C#编写,在网页中显示本机IP,高手速答!!!
- 这个正则表达式是什么意思?
- "目前访问网站的用户过多"的问题
- 树型控件的xml文件中的NavigateURL我想传两个参数怎么写?
- 请问如何使用代码获取IIS站点的连接数?即获取在线用户数量。不使用Applicion。
- flash 2004 mx 中的DATAGRID 如何分页呢??
- web.config 急急急,在线等待
- 一个关于多条件查询的问题 0_0_0_0_0_0_0_0_2.aspx
webservices!!!