If we check what you have, the only property is PersonName. As for the markup itself, everything else is good old HTML.
Therefore, you do not need to replace anything. You need to have a constructor that is dependent on IHtmlGenerator . This will be automatically entered and you can create different tags based on your model.
Relevant IHtmlGenerator Signature:
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); ... }
What is it!
Here is some code that would capture the main tag:
[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) {
Here's a repo with sample code that generates Bootstrap HTML from TagHelpers:
https://github.com/dpaquette/TagHelperSamples/blob/master/TagHelperSamples/src/TagHelperSamples.Bootstrap/
source share