从LocalHost之外的ASP.NET MVC中的路径获取文档

时间:2014-01-29 20:55:58

标签: html asp.net-mvc

我有一个ASP.NET MVC 4站点,有点问题。

在我的Telerik菜单上,我的所有页面都像一个补充工具栏,我有一个链接,在我的文件系统中找到一个Microsoft Word文档(.docx)。我通过添加包含我的文档的Documents文件夹,然后指定要跟随的链接的路径来完成此操作。这适用于我的localhost上的任何页面,并且不会使用户远离当前页面。他们只需单击,文档就会推送到当前使用的页面。

                @(Html.Telerik().Menu().Name("genMenu")
                    .Orientation(MenuOrientation.Vertical)
                    .HtmlAttributes(new { @class = "items" })
                    .Items(appMenu =>
                    {
                         appMenu.Add().Text("User Guide").Url("/Documents/My%20User%20Guide.docx");
                    }))

在另一个页面上,我有一个html元素执行类似的操作,除了它检索Excel工作表(.xlsx)。这也适用于我当地的主机。

<a href="/Documents/Upload%20Template.xlsx">
            .xlsx</a>

但是,当我将此代码放在我的Dev网站上时,当我点击任一链接时收到此错误:

HTTP Error 503. The service is unavailable.

我的网站没有关闭,网站的其余部分功能齐全,但尝试获取我在本地主机上的文档会导致错误。此外,看起来我的Dev网站实际上是将用户直接带到他们点击的链接。这不应该发生。我知道这一点,因为当我点击Telerik菜单链接时,我会看到这个链接:

http://DevSite/Documents/My%20User%20Guide.docx

有没有人知道为什么我的开发网站上会出现这种行为,而不是我的本地主机?

我愿意以完全不同的方式做到这一点,但我的主要目标仍然是: 有一个用户可以单击的链接,从ASP.NET MVC站点文件系统中下载文档。

1 个答案:

答案 0 :(得分:1)

尝试使用Url.Content()。此方法了解您的网站相对于IIS和目录路径的上下文。将虚拟路径映射到绝对路径。我的localhost环境和Dev服务器之间存在类似的问题:

 <a href="@Url.Content("~/Documents/Upload%20Template.xlsx")">.xlsx</a>

请参阅此文章:URL.Content()