获取MVC应用程序中文件的绝对URL

时间:2013-12-18 00:02:42

标签: asp.net-mvc

我在Asp.Net MVC 5网站上有以下内容:

@Url.Content("~/shareimage.jpg")

这给了我一个相对的网址。但我需要绝对的网址。

如何获取文件的绝对网址?

谢谢你, 米格尔

2 个答案:

答案 0 :(得分:2)

指定协议的Url.Action或url.RouteUrl会为您提供绝对网址。

<%= Url.Action("About", "Home", null, "http") %><br />
<%= Url.RouteUrl("Default", new { Action = "About" }, "http") %><br />

http://captaincodeman.com/2010/02/03/absolute-urls-using-mvc-without-extension-methods/

答案 1 :(得分:2)

这与此问题重复:asp.net mvc image path and virtual directory

我自己使用这个助手:

public static class Helpers
{
  public static Uri FullyQualifiedUri( this HtmlHelper html , string relativeOrAbsolutePath )
  {
    Uri        baseUri  = HttpContext.Current.Request.Url ;
    string     path     = UrlHelper.GenerateContentUrl( relativeOrAbsolutePath, new HttpContextWrapper( HttpContext.Current ) ) ;
    Uri        instance = null ;
    bool       ok       = Uri.TryCreate( baseUri , path , out instance ) ;
    return instance ; // instance will be null if the uri could not be created
  }
}

它应该为你提供一个完全合格的绝对URI,几乎任何你抛出的URI。