Gau*_*ain 29 asp.net-mvc asp.net-mvc-routing
我想在MVC中生成任何文件的完整Url(带域名等).示例:.jpg
文件或exe
文件.
示例:如果我提供"〜/ images/abc.jpg",则应返回" http://www.mywebsite.com/images/abc.jpg "
我知道Url.Action
将协议作为参数的重载.但是Url.Action
只能用于Actions.
我想要一些像Url.Content
协议作为参数的功能.
你知道是否有任何方法来获取任何文件的完整URL?
我曾尝试:VirtualPathUtility.ToAbsolute
,ResolveClientUrl
,ResolveUrl
但所有这些似乎并不管用.
arn*_*rni 58
new Uri(Request.Url, Url.Content("~/images/image1.gif"))
Run Code Online (Sandbox Code Playgroud)
Ade*_*eel 49
您可以使用以下代码将"〜/"替换为absoulute URL.
System.Web.VirtualPathUtility.ToAbsolute("~/")
Run Code Online (Sandbox Code Playgroud)
编辑:
首先,您需要定义一个方法.
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;
}
Run Code Online (Sandbox Code Playgroud)
现在调用此方法将返回完整的absolure url.
ResolveServerUrl(VirtualPathUtility.ToAbsolute("~/images/image1.gif"),false))
Run Code Online (Sandbox Code Playgroud)
输出将是 http://www.yourdomainname.com/images/image1.gif
归档时间: |
|
查看次数: |
29113 次 |
最近记录: |