我的编辑表单中有很多Bootstrap输入,我使用asp-for标签帮助器进行模型绑定。
<div class="form-group">
<div class="fg-line">
<label asp-for="@Model.Name" class="control-label"></label>
<input asp-for="@Model.Name" class="form-control"/>
</div>
<span asp-validation-for="@Model.Name" class="help-block"></span>
</div>
我想写一个自定义标记帮助器,以便我可以写:
<bsinput asp-for="@Model.Name" />
...产生上面的输出。
是否可以评估嵌套标记助手?
答案 0 :(得分:5)
在对同一问题进行一些研究时,我偶然发现了这个问题。这就是我为我解决问题的方法:
在我的情况下,我有一个使用我的自定义标记助手生成的颜色选择器。这是我的班级:
public class ColourPickerTagHelper : TagHelper
{
public ModelExpression AspFor { get; set; }
public List<CustomSelectItem> AspColours { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "select";
string name = this.AspFor.Name;
if (!String.IsNullOrEmpty(name))
{
output.Attributes.Add("name", name);
}
output.Content.SetHtmlContent(LoadMyOptions());
output.TagMode = TagMode.StartTagAndEndTag;
}
}
我称之为:
<colour-picker asp-for="Form.Colour" asp-colours="Model.MyOptions" />
编辑:自从我发现了ModelExpression对象后,我更新了我的答案。