我在Asp.Net MVC 5网站上有以下内容:
@Url.Content("~/shareimage.jpg")
这给了我一个相对的网址。但我需要绝对的网址。
如何获取文件的绝对网址?
谢谢你, 米格尔答案 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。