Silverlight 页面传值问题(转)

共有两种方式来传递初始化参数

1)在html或者aspx页面中object对象中加入一下代码

参数格式:参数名 = 值,参数名 = 值,...

          <param name="initParams" value = "name = John , sex = m"/>

取得参数的方法

在app页面中

            StringBuilder txtMsg = new StringBuilder();
foreach (string key in e.InitParams.Keys)
{
txtMsg.Append(String.Format("{0} : {1}", key, e.InitParams[key])).Append(" ");
}
MessageBox.Show(txtMsg.ToString());

在任意页面中

            StringBuilder txtMsg = new StringBuilder();
foreach (string key in App.Current.Host.InitParams.Keys)
{
txtMsg.Append(String.Format("{0} : {1}", key, App.Current.Host.InitParams[key])).Append(" ");
}
MessageBox.Show(txtMsg.ToString());

2)在URL中传递参数也可以用表单传递参数

http://localhost:45876/Silverlight4TestPage.aspx?name=Cena&age=100

取得参数值

复制代码
            txtMsg = new StringBuilder();
foreach (string key in HtmlPage.Document.QueryString.Keys)
{
txtMsg.Append(String.Format("{0} : {1}", key, HtmlPage.Document.QueryString[key])).Append(" ");
}
if (!"".Equals(txtMsg.ToString()))
{
MessageBox.Show(txtMsg.ToString());
}
复制代码


另外:

          <param name="initParams" value = "age = 24" />
<param name="initParams" value = "name = John , sex = m"/>

在IE和谷歌浏览器中解析的顺序不一样,IE是第一条参数而谷歌是第二条参数

但是无论哪种浏览器都只一条记录

转自:http://www.cnblogs.com/Zyang/archive/2012/01/11/InitParams.html

原文地址:https://www.cnblogs.com/holygis/p/3510056.html