C# 无法加载URI的内容。URI可能无效
我必须说,我对此感到相当困惑,我希望你们中的一些人可能也遇到过同样的问题。我有一个超链接按钮,创建方式如下:C# 无法加载URI的内容。URI可能无效,c#,silverlight,exception-handling,silverlight-5.0,C#,Silverlight,Exception Handling,Silverlight 5.0,我必须说,我对此感到相当困惑,我希望你们中的一些人可能也遇到过同样的问题。我有一个超链接按钮,创建方式如下: var hb = new HyperlinkButton { Content = fooText, ClickMode = ClickMode.Release, NavigateUri = new Uri(fooLink.Value) }; hb.Click += hb_Click; static void hb_Click(object sender,
var hb = new HyperlinkButton
{
Content = fooText,
ClickMode = ClickMode.Release,
NavigateUri = new Uri(fooLink.Value)
};
hb.Click += hb_Click;
static void hb_Click(object sender, RoutedEventArgs e)
{
var btn = (HyperlinkButton)sender;
HtmlPage.Window.Navigate(btn.NavigateUri, "_blank");
}
HtmlPage.Window.Navigate(btn.NavigateUri);
链接是指向网站(.)的绝对URL,而不是应用程序内部。因此,我想在新的浏览器选项卡中打开它。这正是它所做的!网站将在新选项卡中打开,但在“应用程序”选项卡中出现以下错误:
如果我更改事件处理程序,使其没有目标参数,如下所示:
var hb = new HyperlinkButton
{
Content = fooText,
ClickMode = ClickMode.Release,
NavigateUri = new Uri(fooLink.Value)
};
hb.Click += hb_Click;
static void hb_Click(object sender, RoutedEventArgs e)
{
var btn = (HyperlinkButton)sender;
HtmlPage.Window.Navigate(btn.NavigateUri, "_blank");
}
HtmlPage.Window.Navigate(btn.NavigateUri);
…在浏览器离开应用程序之前,也会出现错误。但我想打开一个新标签
我正在使用VisualStudio11中的Silverlight业务应用程序模板,我已经注意到它有一些神秘的bug,这可能是其中之一。总之,它是有效的,我只需要去掉错误消息。但事件处理程序中没有引发我可以接受的异常。尝试以下方法:
/// <summary>
/// Hyperlink button - simulates hyperlink click
/// </summary>
private class HyperlinkButtonWrapper : HyperlinkButton
{
public void OpenURL(string navigateUri)
{
OpenURL(new Uri(navigateUri, UriKind.Absolute));
}
public void OpenURL(Uri navigateUri)
{
base.NavigateUri = navigateUri;
base.TargetName = "_blank";
base.OnClick();
}
}
/// <summary>
/// Method opens url
/// <para>Example: OpenURL("http://www.google.com")</para>
/// </summary>
/// <param name="navigateUri"></param>
public static void OpenURL(string navigateUri)
{
new HyperlinkButtonWrapper().OpenURL(navigateUri);
}
//
///超链接按钮-模拟超链接单击
///
私有类HyperlinkButton说话者:HyperlinkButton
{
公共void OpenURL(字符串navigateUri)
{
OpenURL(新的Uri(navigateUri,UriKind.Absolute));
}
公共void OpenURL(Uri navigateUri)
{
base.NavigateUri=NavigateUri;
base.TargetName=“_blank”;
base.OnClick();
}
}
///
///方法打开url
///例如:OpenURL(“http://www.google.com")
///
///
公共静态void OpenURL(字符串navigateUri)
{
新的HyperlinkButtonRapper().OpenURL(navigateUri);
}
试试这个:
/// <summary>
/// Hyperlink button - simulates hyperlink click
/// </summary>
private class HyperlinkButtonWrapper : HyperlinkButton
{
public void OpenURL(string navigateUri)
{
OpenURL(new Uri(navigateUri, UriKind.Absolute));
}
public void OpenURL(Uri navigateUri)
{
base.NavigateUri = navigateUri;
base.TargetName = "_blank";
base.OnClick();
}
}
/// <summary>
/// Method opens url
/// <para>Example: OpenURL("http://www.google.com")</para>
/// </summary>
/// <param name="navigateUri"></param>
public static void OpenURL(string navigateUri)
{
new HyperlinkButtonWrapper().OpenURL(navigateUri);
}
//
///超链接按钮-模拟超链接单击
///
私有类HyperlinkButton说话者:HyperlinkButton
{
公共void OpenURL(字符串navigateUri)
{
OpenURL(新的Uri(navigateUri,UriKind.Absolute));
}
公共void OpenURL(Uri navigateUri)
{
base.NavigateUri=NavigateUri;
base.TargetName=“_blank”;
base.OnClick();
}
}
///
///方法打开url
///例如:OpenURL(“http://www.google.com")
///
///
公共静态void OpenURL(字符串navigateUri)
{
新的HyperlinkButtonRapper().OpenURL(navigateUri);
}
您可以这样做:
var hb = new HyperlinkButton
{
Content = fooText,
ClickMode = ClickMode.Release,
NavigateUri = new Uri(fooLink.Value),
TargetName = "_blank"
};
没有单击事件处理程序
它应该以更干净的方式完全满足您的要求。您可以这样做:
var hb = new HyperlinkButton
{
Content = fooText,
ClickMode = ClickMode.Release,
NavigateUri = new Uri(fooLink.Value),
TargetName = "_blank"
};
没有单击事件处理程序
它应该以一种更干净的方式完全符合您的要求。请复制/粘贴文本中错误的堆栈跟踪,屏幕截图没有任何意义。哦,好的,我下次会尽量记住它。我想这可能有助于发布整个事件,而不仅仅是错误细节。感谢您的编辑。如果图像无法访问,请将其翻译为文本并翻译为英语(由于某些原因,原始消息为“双语”):无法加载URI的错误内容。URI可能无效。参数名称:System.Windows.Navigation.NavigationService.NavigationCore(uri uri、NavigationMode模式、Boolean suppressJournalAdd、Boolean isRedirect)图像中的uri错误详细信息托管在专门的SO服务上,因此将保留相当长的一段时间。您是否已检查并执行类似操作?请在文本中复制/粘贴错误的堆栈跟踪,截图毫无意义。哦,好吧,下次我会尽量记住的。我想这可能有助于发布整个事件,而不仅仅是错误细节。感谢您的编辑。如果图像无法访问,请将其翻译为文本并翻译为英语(由于某些原因,原始消息为“双语”):无法加载URI的错误内容。URI可能无效。参数名称:System.Windows.Navigation.NavigationService.NavigationCore(uri uri、NavigationMode模式、Boolean suppressJournalAdd、Boolean isRedirect)图像中的uri错误详细信息托管在专用于SO的服务上,因此将保留相当长的时间。您是否已检查并进行类似操作?不幸的是,这并不能解决问题。无论如何,谢谢。不幸的是,这并不能解决问题。无论如何,谢谢。是的,谢谢你!我不知道它为什么有效,但它有效。在设置TargetName属性时,错误不再显示。正如我在对问题的评论中所说的,我在客户端部署的一些未知CMS上遇到过此类问题(无法以编程方式导航)。在多次尝试修复失败后,切换到本机HyperlinkButton功能修复了此问题。是的,谢谢!我不知道它为什么有效,但它有效。在设置TargetName属性时,错误不再显示。正如我在对问题的评论中所说的,我在客户端部署的一些未知CMS上遇到过此类问题(无法以编程方式导航)。在多次尝试修复失败后,切换到本机HyperlinkButton功能修复了该问题。