硬编码路径:如何在ASP.NET MVC网站上链接它?

时间:2014-08-27 06:48:10

标签: asp.net asp.net-mvc url

我在远程Web服务器上的以下位置有PDF文档:

C:\域\ BIN \发票\ 1000例.pdf

如何链接?我试过了:

string rootPath = Server.MapPath("~");
string path = Path.GetFullPath(Path.Combine(rootPath, "..\\Bin\\Invoices"));

<p>@Html.Raw("<a href='"+ path + "\\" + "1000.pdf'>Original PDF copy</a>")</p>

没有成功:浏览器工具提示会显示file:///C:/domains/bin/invoices/1000.pdf

感谢。

修改

使用Joe建议解决,这样:

public FileResult InvoiceInPdf(string id)
{
    string rootPath = Server.MapPath("~");
    string path = Path.GetFullPath(Path.Combine(rootPath, "..\\Bin\\Invoices\\"));

    return File(path + id + ".pdf", "application/pdf");
}

1 个答案:

答案 0 :(得分:2)

您无法创建超链接以浏览到服务器上任意位置的文件。这是一件好事,因为否则会损害您的Web服务器的安全性。

您应该创建一个Action,通过返回FileResult来流式传输您想要的文件。 Google将为您提供此方法的示例。