如果我们检查您有什么,您使用的唯一属性是 PersonName。至于标记本身,其他一切都是好的旧 HTML。
所以你不需要更换任何东西。您需要的是具有依赖于IHtmlGenerator
. 这将自动注入,您将能够根据您的模型生成不同的标签。
相关IHtmlGenerator
签名:
public interface IHtmlGenerator
{
...
TagBuilder GenerateValidationMessage(
ViewContext viewContext,
string expression,
string message,
string tag,
object htmlAttributes);
TagBuilder GenerateLabel(
ViewContext viewContext,
ModelExplorer modelExplorer,
string expression,
string labelText,
object htmlAttributes);
TagBuilder GenerateTextBox(
ViewContext viewContext,
ModelExplorer modelExplorer,
string expression,
object value,
string format,
object htmlAttributes);
...
}
就是这样!
这是一些可以捕获基本标签的代码:
[HtmlTargetElement("bootstraprow")]
public BootstrapRowTagHelper: TagHelper
{
protected IHtmlGenerator Generator { get; set; }
public InputTagHelper(IHtmlGenerator generator)
{
Generator = generator;
}
[HtmlAttributeName("asp-for")]
public ModelExpression For { get; set; }
[HtmlAttributeNotBound]
[ViewContext]
public ViewContext ViewContext { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
//todo: write your html generating code here.
}
}
这是一个包含从 TagHelpers 生成 Bootstrap HTML 的示例代码的存储库:
https://github.com/dpaquette/TagHelperSamples/blob/master/TagHelperSamples/src/TagHelperSamples.Bootstrap/