Использование lodash было бы хорошим решением
Пример:
var object = { 'a': { 'b': { 'c': 3 } } };
_.get(object, 'a.b.c');
// => 3
Вы имеете в виду Context.Request.Path?
Я быстро создал образец проекта с помощью HomeController, Index.cshtml и Second.cshtml. Second.cshtml выглядит так:
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
<h1>@ViewBag.Title</h1>
<a asp-controller="Home" asp-action="Index" asp-route-returnUrl="@Context.Request.Path">Log in</a>
И привязанный тег отображает браузер как (проверенный с помощью инструментов Chrome dev):
<a href="/?returnUrl=%2FHome%2FSecond">Log in</a>
У вас есть Request.Query и / или Request.QueryString для конкатенации полного URL-адреса.
Вы можете сделать метод расширения в классе HttpRequest, чтобы, например, возвратить Path и QueryString.
Для этого существует метод расширения: Request.GetDisplayUrl();
, который возвращает https://localhost/MyController/MyAction?Param1=blah
.
Или закодированная версия Request.GetEncodedUrl()
К любому из них вы должны добавить: using Microsoft.AspNetCore.Http.Extensions;