Silverlight的xaml页面跳转到sharepoint的application page页面(aspx页面)以及传中文参数的乱码问题

环境: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";
            }
        }

说明:亲身试验,完全行的通!

原文地址:https://www.cnblogs.com/KnowledgeSky/p/2762715.html