c# - 如何通过单击超链接打开文件

标签 c# asp.net visual-studio-2010 web-applications hyperlink

我有这张 table

enter image description here

我想单击链接,文件(无论是什么文件)将在新的弹出窗口中打开。

这是我的代码:

<asp:Repeater ID="dokumente" runat="server">
    <ItemTemplate>
        <tr>
            <td><asp:HyperLink ID="HyperLink4" runat="server" Text='<%# Eval("DokuTyp") %>' NavigateUrl='file://<%# Eval("File") %>'></asp:HyperLink></td>
            <td><%# Eval("Description")%></td>
            <td><%# Eval("Date") %></td>
            <td><%# Eval("File") %></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

但它不适用于 NavigateUrl。任何人都可以帮助我解决这个问题或任何想法如何做到这一点。谢谢

最佳答案

file:///是你自己机器上的资源。

要打开服务器上的文件,您必须链接到服务器上的 url。 使用:

HttpContext.Current.Request.ResolveUrl(pathOnServer);

像这样更改您的代码:

<asp:Repeater ID="dokumente" runat="server">
    <ItemTemplate>
        <tr>
            <td><asp:HyperLink ID="HyperLink4" runat="server" Text='<%# Eval("DokuTyp") %>' NavigateUrl='<%# HttpContext.Current.Request.ResolveUrl(Eval("File")) %>'></asp:HyperLink></td>
            <td><%# Eval("Description")%></td>
            <td><%# Eval("Date") %></td>
            <td><%# Eval("File") %></td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

服务器所在位置

关于c# - 如何通过单击超链接打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245444/

相关文章:

c# - 使用 Foq 模拟具有显式实现接口(interface)的类

c# - signalR、IE10 和 fiddler 的奇怪行为

visual-studio-2010 - 有没有办法在 TFS 中进行部分 checkin ?

c# - 如何在 C# 中使用 selenium webdriver 单击 javascript 确认对话框

c# - 如何在 C# 中获取网络摄像头图像?

c# - 从 C++ Windows Phone 8 应用程序引用 Facebook SDK C# WP8 的问题

c# - 根据满足的较低级别标准获取顶级实体

asp.net - 如何添加管理员角色(我的解决方案)

c# - 在选定的数据源上找不到属性

c# - 构建我的解决方案时未更新 DLL