【问题标题】:relative client url to http url相对客户端 url 到 http url
【发布时间】:2010-09-28 20:35:41
【问题描述】:

我有一个模型类的属性,其中包含一个文件的相对 url。

~/_docs/folder/folder/document.pdf

如何在视图中将其转换为超链接以下载文件本身?

谢谢

【问题讨论】:

    标签: asp.net-mvc relative-path


    【解决方案1】:
    <a href="<%= Url.Content("~/_docs/folder/folder/document.pdf") %>">
        document.pdf
    </a>
    

    或者为了让它更优雅并避免意大利面条式代码,您可以编写一个自定义 html 帮助器:

    public static class HtmlExtensions
    {
        public static MvcHtmlString ContentLink(
            this HtmlHelper htmlHelper, 
            string linkText, 
            string contentPath, 
            object htmlAttributes
        )
        {
            var a = new TagBuilder("a");
            var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext, htmlHelper.RouteCollection);
            a.MergeAttribute("href", urlHelper.Content(contentPath));
            a.MergeAttributes(new RouteValueDictionary(htmlAttributes));
            a.SetInnerText(linkText);
            return MvcHtmlString.Create(a.ToString());
        }
    }
    

    然后:

    <%= Html.ContentLink(
        "download.pdf", 
        "~/_docs/folder/folder/document.pdf", 
        new { title = "Download download.pdf" }
    ) %>
    

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 2017-10-29
      • 2021-08-23
      • 2019-01-27
      • 2021-06-09
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多