1) 在 _ViewImports.cshtml 中引入TagHelper类所在的 Assembly . (注意不是namespace) :
@addTagHelper "*, WebApplication1"
2) 创建TagHelper类:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNet.Razor.Runtime.TagHelpers; 6 using Microsoft.AspNet.Razor.TagHelpers; 7 8 namespace WebApplication1.TagHelpers 9 { 10 // You may need to install the Microsoft.AspNet.Razor.Runtime package into your project 11 [HtmlTargetElement("field")] 12 public class FieldTagHelper : TagHelper 13 { 14 [HtmlAttributeName("label")] 15 public string Label { get; set; } 16 17 [HtmlAttributeName("cols")] 18 public int ColumnCount { get; set; } 19 20 public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) 21 { 22 output.TagName = "div"; 23 output.Attributes.Add("class", "form-group"); 24 25 var childContent = await output.GetChildContentAsync(); 26 27 output.Content.SetHtmlContent($@" 28 <label class='col-md-{ColumnCount} control-label'>{Label}</label> 29 <div class='form-value col-md-{12 - ColumnCount}'>{childContent.GetContent()}</div>"); 30 } 31 } 32 }
3)使用自定义Tag:
1 <field label="Test Label" cols="4"> 2 <input asp-for="TestName" class="form-control" /> 3 </field>