无法在“自定义标签助手”中呈现部分视图

时间:2019-12-11 19:27:37

标签: asp.net-mvc asp.net-core-2.1 razorengine asp.net-core-tag-helpers

我正在尝试将以下代码用于自定义标签帮助器,并认为这对于引用内置标签帮助器的局部视图应该有效,例如“ asp-for”。但是,似乎渲染不起作用。根据此讨论,看起来应该是:https://github.com/aspnet/Mvc/issues/5504

public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
    (_htmlHelper as IViewContextAware).Contextualize(ViewContext);

    var wiring = new WireupModel() { FieldName = this.FieldName, PlaceHolder = this.PlaceHolder };

    var content = await _htmlHelper.PartialAsync("~/Views/Shared/_EditControlTemplate.cshtml", wiring);
    output.TagName = "div";
    output.Attributes.SetAttribute("class", "col-12 col-sm-6 form-group mb-3");
    output.Content.SetHtmlContent(content);
}

部分视图中的html元素之一是看起来像这样的标签:

<label asp-for="@Model.FieldName" class="control-label"></label>

但是,它呈现如下:

<label class="control-label" for="FieldName">FieldName</label>

在运行时,我进入了局部视图中的razor代码,并且该值正确地从模型中以“ FirstName”而不是“ FieldName”的形式传入。

我的目标是通过将这样的HTML替换为自定义标签来减少大量重复的html:

<edit-control field-name="FirstName" place-holder="@SharedLocalizer["First Name"]"></edit-control>

0 个答案:

没有答案