asp.net-mvc – 获取ASP.Net MVC中任何文件的完整网址

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 获取ASP.Net MVC中任何文件的完整网址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想生成完整的URL(与域名等)的任何文件在MVC。示例:.jpg文件或exe文件

例如:如果我给“〜/ images / abc.jpg”,它应该返回“http://www.mywebsite.com/images/abc.jpg

我知道Url.Action重载的协议作为参数。但Url.Action只能用于操作。

我想要像协议作为参数的Url.Content函数

你知道是否有任何方法获取任何文件的完整url?

我试过: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;
}

现在调用这个方法会返回完整的absolure url。

ResolveServerUrl(VirtualPathUtility.ToAbsolute("~/images/image1.gif"),false))

输出将是http://www.yourdomainname.com/images/image1.gif

猜你在找的asp.Net相关文章