这与另一篇文章有关,我无法在webform中设置代码隐藏的URL的绝对路径,但我能够解决它。我在服务器共享上有一个pdf文件,我希望链接指向,URL如下:
file://///myServer/share/MyFile.pdf
我通过手动将其添加到浏览器的地址栏来验证pdf是否正确打开。输入后,pdf会在我的浏览器中按预期打开。但是,当我尝试点击我的网络表单中的链接时,没有任何反应。我比较了链接中的URL字符串和我在浏览器中输入的内容,两者都是相同的。为什么锚不会重定向到指定的位置,而是在地址栏中手动输入?任何帮助表示赞赏。
答案 0 :(得分:2)
答案 1 :(得分:0)
答案 2 :(得分:0)
以下是一些C#代码,用于扫描目录内容并构建指向服务器上文件夹内文件的链接。听起来你只有一个文件,但它仍然可以正常工作,你可以根据需要进行调整。
显然,这是为了从文件夹中的文件构建一个链接列表,这对你的例子来说肯定有点过分,但也许它会给你一些想法。
DirectoryInfo di = default(DirectoryInfo);
FileInfo[] files = null;
DataTable dt = new DataTable();
DataRow dr = null;
System.DateTime filedate = default(System.DateTime);
di = new DirectoryInfo(Server.MapPath("~/forms"));
files = di.GetFiles();
dt.Columns.Add("name");
dt.Columns.Add("filepath");
dt.Columns.Add("filedate");
foreach (FileInfo inf in files)
{
filedate = inf.LastWriteTime;
dr = dt.NewRow();
dr["name"] = inf.Name;
dr["filepath"] = inf.FullName;
dr["filedate"] = String.Format("{0:MM/dd/yyyy}", filedate);
dt.Rows.Add(dr);
}
DataList1.DataSource = dt;
DataList1.DataBind();
在你的aspx页面上:
<asp:DataList ID="DataList1" runat="server" RepeatColumns="1" GridLines="none">
<HeaderTemplate>
<table>
<tr>
<td style="width: 450px">
<asp:Label ID="label1" runat="server" Text="Form Name" Font-Bold="true"></asp:Label>
</td>
<td>
<asp:Label ID="label2" runat="server" Text="Creation Date" Font-Bold="true"></asp:Label>
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table>
<tr>
<td style="width: 446px">
<a target="_blank" href='http://yourwebserverpath.com/forms/<%# DataBinder.Eval(Container.DataItem, "name") %>'>
<%# DataBinder.Eval(Container.DataItem, "name") %></a>
</td>
<td style="padding: 0 0 0 5px">
<%#DataBinder.Eval(Container.DataItem, "filedate")%>
</td>
</tr>
</table>
</ItemTemplate>
<FooterTemplate>
<table>
<tr>
<td style="width: 446px">
</td>
<td style="padding: 0 0 0 5px">
</td>
</tr>
</table>
</FooterTemplate>
</asp:DataList>