【问题标题】:Resolve asp-for in custom tag helper解决自定义标签助手中的 asp-for
【发布时间】:2016-03-24 10:23:43
【问题描述】:

我的编辑表单中有很多 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" /> 

...产生上面的输出。

是否可以评估嵌套标签助手?

【问题讨论】:

标签: asp.net asp.net-mvc razor


【解决方案1】:

我在对同一问题进行一些研究时偶然发现了这个问题。这就是我为我解决问题的方法:

在我的例子中,我有一个使用自定义标签助手生成的颜色选择器。这是我的课:

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 对象。

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2020-11-25
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多