无法将参数传递到禁用_sl_historyFrame的silverlight应用程序

本文关键字:sl historyFrame silverlight 应用程序 参数传递 | 更新日期: 2023-09-27 18:25:22

我在aspx页面中禁用了_sl_historyFrame,以阻止后退/前进导航。现在我发现我不能像这样将参数传递给应用程序:http://contoso.com:7553/Page.aspx#/Sub/1/2.

我在NavigationFrame_OnNavigating方法上得到空Url。

有什么办法解决它吗?

无法将参数传递到禁用_sl_historyFrame的silverlight应用程序

我通过将initParams参数传递给aspx页面中的silverlight对象来解决此问题。

Page.aspx

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2">
    <param name="splashscreensource" value="SplashScreen.xaml" />
    <%
      string value = String.Empty;
      // take parameters from QueryString
      foreach (string key in Request.QueryString.Keys)
      {
        value += String.Format("{0}={1},", key, Request.QueryString.Get(key));
      }
      Response.Write(String.Format("<param name='"initParams'" value='"{0}'"/>", value));
      // it writes <param name="initParams" value="id=1,var1=2,var2=3"
    %>
    <%-- another parameters --%>
 </object>

ApplicationStartup方法中,我像这样处理

private void ApplicationStartup(object sender, StartupEventArgs e)
{
     // some code...
     if (e.InitParams != null)
     {
          // process our parameters
          // example of getting: e.InitParams["ID"]
     }
}

一些链接:

  • http://jaliyaudagedara.blogspot.com/2012/09/how-to-pass-parameters-into-silverlight.html
  • http://jesseliberty.com/2008/12/26/passing-parameters-into-silverlight-applications/