ASP.NET CORE: VirtualPath -> AbsolutePath внутри метода, который создает пользовательский элемент управления бритвой - PullRequest
0 голосов
/ 01 октября 2019

Я переношу некоторые из моих старых проектов в .NET CORE 3.0, и я хотел бы знать, как правильно преобразовать Virtual Path --> Absolute Path в методе, отвечающем за создание пользовательского элемента управления бритвой. У меня есть некоторые идеи, но они кажутся немного глупыми. Существуют также решения с IHostingEnvironment и с IPathProvider, но они требуют передачи аргументов непосредственно в контроллеры или определения вещей, выходящих за рамки реальной библиотеки, поэтому они не являются тем, что я ищу.

Давайте возьмемэтот простой пример для ясности (обратите внимание, что VirtualPathUtility не существует в .NET CORE, и на сборку нельзя ссылаться). Я хочу знать, есть ли прямой способ сделать то же самое, написанное здесь для ASP.NET MVC 5:

using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;

namespace CommonLib.Source.Common.CustomMVCRenderers
{
    public static class ImageRenderer
    {
        public static IHtmlContent Image(this HtmlHelper html, string src, string alt)
        {
            var img = new TagBuilder("img");
            img.Attributes.Add("src", VirtualPathUtility.ToAbsolute(src));
            img.Attributes.Add("alt", alt);
            return img;
        }
    }
}

// РЕДАКТИРОВАТЬ

Лучший способ, которым я могу думать в настоящее времяэто с использованием html.ViewContext.HttpContext.Request.PathBase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...