Вы можете сделать это следующим образом:
var urlBuilder =
new System.UriBuilder(Request.Url.AbsoluteUri)
{
Path = Url.Action("Action", "Controller"),
Query = null,
};
Uri uri = urlBuilder.Uri;
string url = urlBuilder.ToString();
// or urlBuilder.Uri.ToString()
Вместо Url.Action()
в этом примере вы также можете использовать Url.Content()
или любой метод маршрутизации или просто просто пройти путь.
Но если URL-адрес переходит к Controller
Action
, существует более компактный способ:
var contactUsUriString =
Url.Action("Contact-Us", "About",
routeValues: null /* specify if needed */,
protocol: Request.Url.Scheme /* This is the trick */);
. Трюк здесь в том, что как только вы укажете protocol
/ схема при вызове любого метода маршрутизации, вы получаете абсолютный URL-адрес. Я рекомендую это, когда это возможно, но у вас также есть более общий путь в первом примере, если вам это нужно.
Я подробно рассказал об этом здесь: http: // gurustop. net / blog / 2012/03/23 / writing-absolute-urls-to-other-actions-in-asp-net-mvc /
Извлечено из Meligy's AngularJS & amp; Web Dev Goodies Newsletter
blockquote>