Подтвердить что ты не робот

Получение полного URL файла любого файла в ASP.Net MVC

Я хочу создать полный URL (с именем домена и т.д.) любого файла в MVC. Пример: файл .jpg или файл exe.

Пример: если я даю "~/images/abc.jpg", он должен возвращать " http://www.mywebsite.com/images/abc.jpg"

Мне известно о перегрузке Url.Action, которая принимает протокол в качестве параметра. Но Url.Action может использоваться только для Actions.

Я хочу что-то вроде функции Url.Content, которая принимает протокол в качестве параметра.

Знаете ли вы, если какой-либо метод получит полный URL-адрес любого файла?

Я пробовал: VirtualPathUtility.ToAbsolute, ResolveClientUrl, ResolveUrl, но все они, похоже, не работают.

4b9b3361

Ответ 1

Вы можете использовать следующий код, чтобы заменить "~/" на URL абзаца.

System.Web.VirtualPathUtility.ToAbsolute("~/")

Edit:

Сначала вам нужно определить метод.

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

Ответ 2

new Uri(Request.Url, Url.Content("~/images/image1.gif"))

Ответ 3

Попробуйте использовать это.

Url.Action("~/images/image1.gif", "/", null, Request.Url.Scheme)