通过c#代码创建动态超链接在IE中有效,但在Chrome中无效

本文关键字:有效 但在 无效 Chrome IE 代码 创建 动态 超链接 通过 | 更新日期: 2023-09-27 18:02:24

我正试图从我的本地存储库读取文件夹,我想在我的浏览器上显示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>");   
}

通过c#代码创建动态超链接在IE中有效,但在Chrome中无效

我想你的问题是字符串变量的位置。

试试这个

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

最可能的问题是url没有被引号括起来,试着把代码改成

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

编辑有一个限制,它阻止你打开本地文件,因为安全原因,但有一个扩展localllinks,它允许你这样做

在这种情况下需要runat=服务器吗?你只是在创建一个静态链接。

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