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

asp.net Silverlight应用程序中获取载体aspx页面参数

有时候SL应用中需要使用由aspx页面中传递过来的参数值,此时通常有两种方法获取

  1. 使用InitParameters属性,动态设置传递参数 。

  2. 在SL工程中使用HtmlPage类来直接获取页面参数。

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

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

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

protected void btnSubmit_Click(object sender, EventArgs e)
{
  Response.Redirect(String.Format(SilverlightTestPage.aspx?username={0}email={1},
    this.txtUserName.Text,
    this.txtEmail.Text));
}

  使用InitParams

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

protected void Page_Load(object sender, EventArgs e)
{
  this.Xaml1.InitParameters = String.Format(username={0},email={1},
    Request.QueryString[username],
    Request.QueryString[email]);
}

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

public String UserName
{
  set {
    this.lblUserName.Text = value;
  }
}
public String Email
{
  set {
    this.lblEmail.Text = value;
  }
}

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

private void Application_Startup(object sender, StartupEventArgs e)
{
  Page page = new Page();
  page.UserName = e.InitParams[username];
  page.Email = e.InitParams[email];
  this.RootVisual = page;
}

  这样我们就通过InitParams来在Silverlight应用程序中获取到了ASP.NET页面的参数

第二种方法:使用HtmlDocument

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

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

  下面是利用HtmlPage类来获取参数的代码:

  代码如下:

void Page_Loaded(object sender, RoutedEventArgs e){ 
IDictionary<String, String> paras = HtmlPage.Document.QueryString; 
this.lblUserName.Text = paras["username"]; 
this.lblEmail.Text = paras["email"];}

时间: 2024-08-05 05:22:35

如何在Silverlight应用程序中获取ASP.NET页面参数的相关文章

如何在Android应用程序中使用传感器(OpenIntents开源组织SensorSimulator项目)

原文地址http://blog.sina.com.cn/s/blog_621c16b101013ygl.html OpenIntents项目和可用资源介绍 [1].    项目介绍:OpenIntents项目的目的是提供一些开源的意图和接口,通过一些可以重用的组件让移动应用程序更加紧密的在一起工作.而且对于这些开源的项目,OpenIntents组织都会提供相应的源代码和示例程序展示项目如何使用. [2].     项目资源:免费开放源代码下载地址在 www.openintents.org;讨论区

如何在Android应用程序中使用传感器模拟器SensorSimulator

原文地址; 如何在Android应用程序中使用传感器模拟器 - 移动平台应用软件开发技术 - 博客频道 - CSDN.NET http://blog.csdn.net/pku_android/article/details/7596864   (OpenIntents开源项目SensorSimulator) 1.      OpenIntents项目和可用资源介绍 [1].    项目介绍:OpenIntents项目的目的是提供一些开源的意图和接口,通过一些可以重用的组件让移动应用程序更加紧密的

linux c程序中获取shell脚本输出的实现方法

linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部

Silverlight 应用程序中未处理的错误

Silverlight 开发中遇到个错误: SCRIPT5022: Silverlight 应用程序中未处理的错误 代码: 2108 类别: InitializeError 消息: 无法下载初始屏幕或白屏问题 查询了很多材料也没有找到办法,最后下载了 Fildder4(HttpWatch Basic),通过跟踪资源请求,发现缺失了几个文件引起. 几次遇到类似的问题,大部分不是文件.资源缺失,就是JS错误引起的问题. 版权声明:本文为博主原创文章,未经博主允许不得转载.

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

摘要: 本文介绍使用Spring AOP编程中,在增强处理方法中获取目标方法的参数,定义切点表达式时使用args来快速获取目标方法的参数. 获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPoint里包含了如下几个常用的方法: Object[] getArgs:返回目标方法的参数 Signature getSignature:返回目标方法的签名 Ob

javascript中获取标准URL的参数

/** * 获取标准URL的参数 * @_key:字符串,不支持数组参数(多个相同的key) * @_url:字符串,(window).location.href,使用时别误传入非window对象 * @_spliter:字符串,参数间分隔符 * 注意: * 1.如不存在指定键,返回空字符串,方便直接显示,使用时注意判断 * 2.非标准URL勿用 * 3.query(?)与hash(#)中存在键值一样时,以数组返回 */ function getUrlParams(_key, _url, _sp

水煮 ASP.NET Web API(1-2)在 WebForm 应用程序中添加 ASP.NET Web API

问题 怎么样将 Asp.Net Web Api 加入到 Asp.Net Web From 应用程序中 解决方案 在 Visual Studio 2013 中,创建新的 Web From,可以直接在"新建 ASP.NET 项目" 创建项目向导中,勾选 ASP.NET Web API ,将其加入进来.如图 1-2 所示. 图 1-2. 在Asp.NET 项目向导,同时选中 Web Form 和 Web API 因为可以通过 NuGet 添加 ASP.NET Web API ,所以使用&qu

MFC中如何在TreeCtrl控件中获取鼠标左键消息时的有效点击位置

MFC中,当在TreeCtrl控件中添加鼠标左键消息时,就意味着,凡是在该控件中点击左键后即会响应鼠标左键的消息,可有时我们只想记下有效的鼠标左键点击的事件,如图所示: 只想在CheckBox中点击鼠标左键时,将已选中的Item的句柄存入到链表中,那么如何只将有效的鼠标左键的消息存入链表中呢? 下面是响应鼠标左键消息时从所有鼠标左键消息都响应到只响应有效的左键消息的三个版本: 当响应鼠标左键的消息时,第一个版本: 获取鼠标的点击位置(注意:此时获取的是针对于当前屏幕的鼠标点击位置,所以需要将其转

微信小程序中获取高度及设备的方法

由于js中可以采用操纵dom的方法来获取页面元素的高度,可是在微信小程序中不能操纵dom,经过查找之后发现仅仅只有以下几个方法可以获取到高度 wx.getSystemInfoSync().windowWidth // 获取当前窗口的宽度 wx.getSystemInfoSync().windowHeight // 获取当前窗口的高度 wx.getSystemInfoSync().model // 获取当前采用的设备 wx.getSystemInfoSync().pixelRatio wx.get