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"];}

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

  1. 转:如何在32位程序中突破地址空间4G的限制

    //如何在32位程序中突破地址空间4G的限制 //首先要获得内存中锁定页的权限 #define _WIN32_WINNT 0x0501 //xp系统 #include <windows.h> ...

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

    原文地址; 如何在Android应用程序中使用传感器模拟器 - 移动平台应用软件开发技术 - 博客频道 - CSDN.NET http://blog.csdn.net/pku_android/arti ...

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

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  4. 如何在 Windows Phone 8 中获取手机的当前位置

    原文 如何在 Windows Phone 8 中获取手机的当前位置 适用于:仅限于 Windows Phone 8. 本主题演示如何使用 Windows Phone 位置 API 确定手机的当前位置. ...

  5. java程序中获取kerberos登陆hadoop

    本文由作者周梁伟授权网易云社区发布. 一般我们在使用kbs登陆hadoop服务时都直接在shell中调用kinit命令来获取凭证,这种方式简单直接,只要获取一次凭证之后都可以在该会话过程中重复访问.但 ...

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

    Silverlight 开发中遇到个错误: SCRIPT5022: Silverlight 应用程序中未处理的错误 代码: 2108 类别: InitializeError 消息: 无法下载初始屏幕或 ...

  7. Servlet中获取POST请求的参数

    在servlet.filter等中获取POST请求的参数 form表单形式提交post方式,可以直接从 request 的 getParameterMap 方法中获取到参数 JSON形式提交post方 ...

  8. Ajax获取接口数据,url拼接参数跳转页面,js获取上一级页面参数给本页面

    1.Ajax获取接口数据 function demo(){ //假设请求参数 var requestBody = [{ "name":"zhang", &quo ...

  9. Silverlight应用程序中调用WCF Ria Services访问数据库图片

    WCF Ria Services(通常称为RIA服务),专门设计让Silverlight应用程序访问数据库,网上有关其示例应用都是基于简单的数据显示,其中MSDN网站上有详细的解决方案介绍,地址htt ...

随机推荐

  1. uva 10370 - Above Average

    #include <iostream> #include <cstdio> using namespace std; int main() { unsigned C, N, t ...

  2. Linux 软链接和硬链接的理解与学习

    理解前提: 首先要知道 Linux任意一个文件包含2个信息:第一个信息就是文件本身存的内容,第二个信息是文件的控制信息(读写,路径,大小等等),这2个信息是分开存储的,明白这点非常重要 理解总结: L ...

  3. Ubuntu 配置swftools(Ubuntu14.04)

    1.下载文件 wget http://swftools.org/swftools-0.9.0.tar.gz .tar.gz wget http://www.ijg.org/files/jpegsrc. ...

  4. 判断Python输入是否为数字

    在接收raw_input方法后,判断接收到的字符串是否为数字 例如: str = raw_input("please input the number:") if str.isdi ...

  5. Tr A(HDU 1575 快速矩阵幂模板)

    Tr A Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  6. GoogLeNet学习心得

    转自:http://blog.csdn.net/liumaolincycle/article/details/50471289#t0 综述: http://blog.csdn.net/sunbaigu ...

  7. cf E. Valera and Queries

    http://codeforces.com/contest/369/problem/E 题意:输入n,m; n 代表有多少个线段,m代表有多少个询问点集.每一个询问输出这些点的集合所占的线段的个数. ...

  8. Codeforces 204A Little Elephant and Interval

    http://codeforces.com/problemset/problem/204/A 题意:给定一个[L,R]区间,求这个区间里面首位和末尾相同的数字有多少个 思路:考虑这个问题满足区间加减, ...

  9. POJ 2540 Hotter Colder

    http://poj.org/problem?id=2540 题意:给你每次行走的路径,而且告诉你每次离一个点光源是远了还是近了,要求每次光源可能存在的位置的面积. 思路:如果出现"same ...

  10. Keil C调试经验

    我们使用Keil C调试某系统时积累的一些经验:     1.由于Keil C对中文支持不太好,因而会出现显示的光标与光标实际所在不一致的现象,这会对修改中文注释造成影响.在Windows2000下面 ...