为了确保所有客户都收到最新的Silverlight应用程序,我们将新版本号放在XAP文件的URL上,如下所示:
<param name="source" value="/ClientBin/ShoeboxViewer.xap?v=5" />
问题是当我们这样做时,所有使用相对URL的HyperLink控件(在Silverlight应用程序中)在单击时抛出内部错误。这是堆栈跟踪:
Silverlight 2中未处理的错误应用程序指定的参数超出了有效值的范围。参数名称:baseUri 在System.Uri..ctor(Uri baseUri,Uri relativeUri) 在System.Windows.Controls.HyperlinkButton.GetAbsoluteUri() 在System.Windows.Controls.HyperlinkButton.Navigate() 在System.Windows.Controls.HyperlinkButton.OnClick() 在System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) 在System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl,EventArgs e) 在MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj,IntPtr unmanagedObjArgs,Int32 argsTypeIndex,String eventName)
如果删除查询字符串,它可以正常工作。
有人可以帮忙吗?
干杯, 灰分。
答案 0 :(得分:1)
问题实际上是HyperlinkButtons无法使用相对网址。我前几天碰到了这个。这是一个黑客,但我通过向HyperlinkButton添加一个单击处理程序,然后调用HtmlPage.Navigate,传入一个标记为相对的uri
来实现它。答案 1 :(得分:1)
Jacob是对的 - 您可能还想查看this solution以修复相对网址。