通过C#代码创建动态超链接适用于IE,但不适用于Chrome

时间:2013-03-06 08:55:23

标签: c# dynamic hyperlink

我正在尝试从本地存储库中读取文件夹,并且我想在浏览器上显示PDF文件。 当有人点击该浏览器时,应该能够看到PDF文件。

我正在创建一个指向该PDF的动态​​链接,但问题是,当我点击在Chrome中动态创建的链接时,它不会执行任何操作。但在IE中它工作正常,但它要求我启用内部网设置。

我正在使用的代码如下:

String link = "D:\\MyDir\\";
DirectoryInfo di = new DirectoryInfo("D:\\MyDir");
FileInfo[] rgFiles = di.GetFiles("*.pdf");
foreach (FileInfo fi in rgFiles) 
{
    Response.Write("<br><" + "a href=" +link+ fi.Name.ToString() + " runat= server >" + fi.Name.ToString() + "</a>");   
}

3 个答案:

答案 0 :(得分:0)

我认为你的proplem是变量的地方。

试试这个

string aLink = string.Format(@"<br/><a href=""{0}"" runat=""server"" >{1}</a>",link+ fi.Name.ToString(),fi.Name.ToString());

答案 1 :(得分:0)

最有可能的问题是url没有用引号括起来,请尝试将代码更改为

Response.Write("<br><a href=\"" +link+ fi.Name.ToString() + "\" runat= server >" + fi.Name.ToString() + "</a>"); 

编辑谷歌浏览器存在一个限制因为安全原因阻止您打开本地文件,但有extension LocalLinks允许您这样做

答案 2 :(得分:0)

在这种情况下是否需要runat = server?您只是创建一个静态链接。

Response.Write("<br/><a href='" +link+ fi.Name.ToString() + "' target='_blank'>" + fi.Name.ToString() + "</a>");