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

ASP.NET MVC создает абсолютный URL из кода С#

Как создать абсолютный URL-адрес из кода С#?

Я хочу создать такой URL: localhost/{controller}/{action}/{id}. Есть ли способ сделать это в С#, как это можно сделать в представлениях?

Он не будет создан внутри контроллера, а внутри ViewModel.

4b9b3361

Ответ 1

string absUrl = Url.Action("Index", "Products", null, Request.Url.Scheme);

Просто добавьте Request.Url.Scheme. Что это значит, это добавить протокол к URL-адресу, который заставляет его генерировать абсолютный URL-адрес.

Ответ 3

Если вы не хотите "строить" URL-адрес и просто хотите полный путь к текущей странице, это сделает трюк

Context.Server.UrlEncode(Context.Request.Url.AbsoluteUri)

Я знаю, что это не так элегантно, как метод расширения, но подумал об обмене его в образовательных целях

Ответ 4

Начиная с последнего обновления до MVC, вы можете использовать ниже overload для Url.Action

string url=Url.Action("ActionName", "Controller", 
                       new RouteValueDictionary(new { id= someid }), 
                                                      //url param
                       HttpContext.Request.Url.Scheme, 
                       HttpContext.Request.Url.Host);

который генерирует

http://localhost:port/Controller/ActionName?id=someid