Похоже, что нет метода, позволяющего использовать синтаксис с двойной точкой (/ ..).Поэтому необходимо получить абсолютный URL-адрес, разобрать его, удалить ненужную часть и построить ее заново.
Методы, позволяющие выполнить задачу, находятся в Microsoft.AspNetCore.Http.Extensions nuget.
- Полный URL:
Request..GetDisplayUrl()
- Синтаксический анализ:
UriHelper.FromAbsolute
- Создание заново обработанного URL
UriHelper.BuildAbsolute
Итак,метод полного расширения (учтите, что параметр parentRelativeUri должен начинаться с '/'):
public static string GetParentUri(this HttpRequest request, string parentRelativeUri)
{
string scheme;
HostString host;
PathString path;
QueryString query;
FragmentString fragment;
UriHelper.FromAbsolute(request.GetDisplayUrl(), out scheme, out host, out path, out query, out fragment);
var pathBase = request.PathBase.ToString();
return UriHelper.BuildAbsolute(scheme, host,
pathBase.Substring(0, pathBase.LastIndexOf("/")),
parentRelativeUri);
}
И, наконец, перенаправление к родителю:
return Redirect(Request.GetParentUri("/Default.aspx"));