环境:silverlight 4 、sharepoint server 2010
具体实现过程:
由silverlight工程中的一个xaml页面跳转到一个aspx页面:
1.在silverlight工程的MainPage.xaml页面中有一个<HyperlinkButton ... Click="hyperlinkButton1_Click" />超链接按钮,
对应的在MainPage.xaml.cs页面中定义一个Click事件的执行方法:
private void hyperlinkButton1_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(selectedmap))
{
string url = "http://km/Wiki/_layouts/SP1104/appage1.aspx?map=";
html.Navigate(new Uri(url + HttpUtility.UrlEncode(selectedmap)), "_blank");
}
else
{
string Message = "友情警告:未选择地图类别!请核实!";
html.Alert(Message);
}
}
其中string url声明了我们要跳转的aspx页面(http://km/Wiki/_layouts/SP1104/appage1.aspx)以及要传入该页面的参数map。这时涉及到了中文乱码的问题,比如selectedmap=“中华人民共和国",
这里就需要通过HttpUtility.UrlEncode(selectedmap)对中文参数进行编码。
2.跳转到的页面:sharepoint server 2010的sharepoint工程中的自定义的一个application page页面(appage1.aspx)接收参数:
在apppage1.aspx.cs页面中有如下代码:
protected void Page_Load(object sender, EventArgs e)
{
BindQueryString();
}
private void BindQueryString()
{
//ASP.NET端获取到Silverlight传输过来的QueryString值
if (Request.QueryString.Count > 0)
{
this.lblSiteTitle.Text = "获取到的Silverlight客户端QueryString值是:"
+ Request.QueryString["map"];
}
else
{
this.lblSiteTitle.Text = "meiyou qudao map's value";
}
}
说明:亲身试验,完全行的通!