Управление областью действия TagHelper

Читая и узнавая о TagHelper из книги, я написал и использовал TagHelper. Пишем это:

public class ButtonTagHelper: TagHelper
{
    public string BsButtonColor { get; set; }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        output.Attributes.SetAttribute("class", $"btn btn-{BsButtonColor}");
    }
}

а затем использовать его в Razor следующим образом:

<button bs-button-color="danger" type="submit">ADD</button>

ОК, я многому научился. Теперь в следующем разделе об областях действия говорится: введите здесь описание изображения

что меня смущает и я этого не понимаю. ПОЧЕМУ? В моем коде выше я не говорил применять его ко всем кнопкам. Откуда это взялось? Насколько я понимаю, он смотрит на bs-button-color, поэтому, если в другом объявлении кнопки в Razor этого нет, почему это может быть проблемой?


person Bohn    schedule 07.04.2020    source источник
comment
Это происходит от ButtonTagHelper. Это префикс.   -  person Ricardo Peres    schedule 07.04.2020
comment
@RicardoPeres извините, не могли бы вы объяснить немного больше. я все еще тупой   -  person Bohn    schedule 07.04.2020
comment
Класс начинается с Button, поэтому по умолчанию он применяется ко всем элементам ‹button›. Но вы можете изменить это, например, ограничить применимость. См. docs.microsoft. .com/en-us/aspnet/core/mvc/views/tag-helpers/.   -  person Ricardo Peres    schedule 07.04.2020


Ответы (1)


OK вернулся к началу главы и перечитал ее снова. Вот соглашение, которое я пропустил, прочитав его в первом раунде:

The NAME of the TagHelper combines the name of the element it transforms followed by the word TagHelper.  

и в моем примере класс называется ButtonTagHelper, значит, он хочет применить его к BUTTONS

person Bohn    schedule 08.04.2020