提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-04-15 11:28:20.000|阅读 1104 次
概述:在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString。首先我们新建一个名为 SLConnectASP.NET的Silverlight应用程序,然后在SLConnectASP.NET.web项目中添加一个 Index.aspx的页面。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在本节中将讲述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后台代码:
#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
然后我们来看Index.aspx.cs的代码如下:
#region ASP.NET端操作Silverlight传输过来的QueryString值
//QueryString步骤二
private void BindQueryString()
{
//ASP.NET端获取到Silverlight传输过来的QueryString值
if (Request.QueryString.Count > 0)
{
this.Label1.Text = "获取到的Silverlight客户端QueryString值是:"
+ Request.QueryString[ "id"].ToString();
}
}
//QueryString步骤三
protected void Button1_Click(object sender, EventArgs e)
{
//回传QueryString值给Silverlight客户端
Response.Redirect( "./SLConnectASP.NETTestPage.aspx?aspxid=109");
}
#endregion
二、Silverlight和ASPX页面的Cookie传参
实现思路:在Silverlight端创建一个Key名为FirCookieKey,Value值为FirCookieValue的Cookie,然后跳转页面到Index.aspx页面,在该页面显示出来。在该页面有一个按钮可以修改这个Cookie,并且跳转回Silverlight端,在Silverlight端读取这个已经被修改过的Cookie并且显示出来。
首先我们看Silverlight端的后台代码MainPage.xaml.cs:包括步骤一创建Cookie、步骤四读取被修改过的Cookie
#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
接着我们来看Index.aspx.cs,包括Cookie操作二和Cookie操作三
#region ASP.NET端获取到操作Cookie值
//Cookie操作二
private void BindCookie()
{
// ASP.NET端获取到Silverlight传输过来的Cookie值
HttpCookie cookie = Request.Cookies[ "FirCookieKey"];
if (cookie.Value != null)
{
this.Label2.Text = "获取到的Silverlight客户端Cookie值:" + cookie.Value;
}
}
//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
最后这两个实例的MainPage.xaml的代码如下:
<Grid x:Name="LayoutRoot" Background="White">
<sdk:Label Height="27" HorizontalAlignment="Left" Margin="41,25,0,0"
Name= "label1" VerticalAlignment="Top" Width="284" />
<Button Content="传送浏览器参数" Height="38" HorizontalAlignment="Left"
Margin= "41,63,0,0" Name="button2" VerticalAlignment="Top"
Width= "113" Click="button2_Click" />
<sdk:Label Height="27" HorizontalAlignment="Left" Margin="41,116,0,0"
Name= "textBox2" VerticalAlignment="Top" Width="284" />
<sdk:Label Height="27" HorizontalAlignment="Left" Margin="41,149,0,0"
Name= "textBox1" VerticalAlignment="Top" Width="284" />
<Button Content="设置Cookie值" Height="38" HorizontalAlignment="Left"
Margin= "41,194,0,0" Name="button1" VerticalAlignment="Top"
Width= "113" Click="button1_Click" />
</Grid>
Index.aspx的代码如下:
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="回传值给Silverlight应用程序QueryString"
onclick="Button1_Click" />
<br />
<br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<br />
<asp:Button ID="Button2" runat="server"
Text="回传值给Silverlight应用程序Cookie" onclick="Button2_Click"
/>
<br />
</div>
本实例采用VS2010+Silverlight 4.0编写。如需源码请点击 SLConnectASP.NET.rar 下载。本实例效果图如下:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢