我想生成完整的URL(与域名等)的任何文件在MVC。示例:.jpg文件或exe文件。
例如:如果我给“〜/ images / abc.jpg”,它应该返回“http://www.mywebsite.com/images/abc.jpg”
我知道Url.Action重载的协议作为参数。但Url.Action只能用于操作。
我想要像协议作为参数的Url.Content函数。
我试过:VirtualPathUtility.ToAbsolute,ResolveClientUrl,ResolveUrl,但所有这些似乎没有工作。
谢谢。
解决方法
您可以使用以下代码将“〜/”替换为absoulute URL。
System.Web.VirtualPathUtility.ToAbsolute("~/")
编辑:
首先你需要定义一个方法。
public static string ResolveServerUrl(string serverUrl,bool forceHttps) { if (serverUrl.IndexOf("://") > -1) return serverUrl; string newUrl = serverUrl; Uri originalUri = System.Web.HttpContext.Current.Request.Url; newUrl = (forceHttps ? "https" : originalUri.Scheme) + "://" + originalUri.Authority + newUrl; return newUrl; }
ResolveServerUrl(VirtualPathUtility.ToAbsolute("~/images/image1.gif"),false))
输出将是http://www.yourdomainname.com/images/image1.gif