SuppressOutput () не работает в сочетании с другим тегом WithoutEndTag TagHelper - PullRequest
1 голос
/ 14 июня 2019

Я начал с ConditionTagHelper из документации Microsoft https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoring#condition-tag-helper и добавил свой собственный

[HtmlTargetElement(Attributes = nameof(Disabled), TagStructure = TagStructure.WithoutEndTag)]
public class DisabledTagHelper : TagHelper
{
    public bool Disabled { get; set; }
    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        if (Disabled) output.Attributes.Add("disabled", "disabled");
    }
}

Теперь <input> будет подавлено ?

<input disabled="true" condition="false" value="disabled && suppressed">

и <fieldset></fieldset> будут подавлены, но его содержимое не будет 101

<fieldset disabled="true" condition="false"><input value="disabled && suppressed"></fieldset>

Что я не так делаю?


Не лучший обходной путь:

  • Удалить все TagStructure.WithoutEndTag из TagHelper реализаций.
  • Добавить самозакрывающиеся конечные теги /> ко всем тегам без закрывающего тега (в противном случае: Найден искаженный вспомогательный тег тега input)Помощники тегов должны иметь начальный и конечный тег или быть самозакрывающимися. )

(мне не нравится этот обходной путь, потому что добавление / удаление TagStructure из TagHelper вынуждает менядобавить / удалить самозакрывающиеся конечные теги.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...