在 Tag Helper 属性中选择路径

Pick path in Tag Helper attribute

假设我想创建一个自定义 ImageTagHelper,它从数据库字段加载图像名称并生成 IMG。由于只有来自数据库的名称,您必须指定一个文件夹,所有图像都存在其中。

标签助手看起来像:

[HtmlTargetElement("image", Attributes = ForAttributeName, TagStructure = TagStructure.WithoutEndTag)]
    public class ImageTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper
    {
        public ImageTagHelper(IHtmlGenerator generator)
        {
        }

        public ModelExpression For { get; set; }

        /// <summary>
        /// Path to picture
        /// </summary>
        public string ImagePath { get; set; }

        /// <summary>
        /// Extension
        /// </summary>
        public string Extension { get; set; }

        /// <summary>
        /// Alt text
        /// </summary>
        public string Alt { get; set; }


        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "img";
            output.TagMode = TagMode.SelfClosing;

            var src = ImagePath + For.ModelExplorer.Model + "." + Extension;
            output.Attributes.Add("src", src);
            output.Attributes.Add("alt", Alt);
        }



    }

在ASP.NET剃刀我会写:

<image asp-for="Id" image-path="~/images/" alt="No picture" extension="png"/>

image-path-attribute 中键入文本时,如何在 wwwroot 中选择路径?我查看了 GitHub ImageTagHelper source code,但 src 属性也被定义为字符串。有什么神奇的事情发生吗?

据我所知,这是 visual studio 用于 HTML 属性的工具的魔力。它与标签助手或 aspnet 核心无关。