Hyperlink 为什么在使用超链接对象时生成错误的链接?

Hyperlink 为什么在使用超链接对象时生成错误的链接?,hyperlink,pdfsharp,migradoc,Hyperlink,Pdfsharp,Migradoc,我在尝试使用Migradoc在PDF上呈现Web链接时遇到了一个奇怪的问题 Paragraph hotelP = cell.AddParagraph(offer.Hotel.CompanyName.ToString()); hotelP.AddLineBreak(); Hyperlink hyperlink = hotelP.AddHyperlink(String.IsNullOrEmpty(offer.Hotel.Link) ? "" : offer.Hotel.Link, Hyperlink

我在尝试使用Migradoc在PDF上呈现Web链接时遇到了一个奇怪的问题

Paragraph hotelP = cell.AddParagraph(offer.Hotel.CompanyName.ToString());
hotelP.AddLineBreak();
Hyperlink hyperlink = hotelP.AddHyperlink(String.IsNullOrEmpty(offer.Hotel.Link) ? "" : offer.Hotel.Link, HyperlinkType.Web);
hyperlink.AddFormattedText(String.IsNullOrEmpty(offer.Hotel.Link) ? "" : offer.Hotel.Link.ToString(), "WebLink");
虽然这会正确渲染,但它尝试命中的链接是中的文件链接file:///...bin/Debug(或发布)/www.theActualLink.org项目文件夹

知道为什么会这样吗?根据PDFSharp论坛的说法,代码片段应该是正确的方法

编辑: 好的,多亏了Thomas,我将代码更改为:

if (!String.IsNullOrEmpty(offer.Hotel.Link))
{
     Hyperlink hyperlink = hotelP.AddHyperlink("http://" + offer.Hotel.Link, HyperlinkType.Web);
     hyperlink.AddFormattedText(offer.Hotel.Link, "WebLink");
}
这不是最后的代码,但由于链接上有“http://”前缀,它现在可以工作了。
干杯

offer.Hotel.Link是否包含“http://”或“https://”?这可能会有所不同


当URL为空时调用
AddHyperlink()
有什么意义?

不,通常只需www.link.com。这就是问题所在。它需要http://前缀才能真正工作。我现在可以尝试找到一种方法来检查哑用户输入,并相应地添加或省略前缀。谢谢你的提示。我已经用最后的代码更新了我的问题。