在 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 核心无关。
假设我想创建一个自定义 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 核心无关。