加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:56:39 所属栏目:asp.Net 来源:网络整理
导读:我想生成完整的URL(与域名等)的任何文件在MVC。示例:.jpg文件或exe文件。 例如:如果我给“?/ images / abc.jpg”,它应该返回“http://www.mywebsite.com/images/abc.jpg” 我知道Url.Action重载的协议作为参数。但Url.Action只能用于操作。 我想要像协议
我想生成完整的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读