Я тоже не мог правильно разыскивать его.К сожалению, похоже, что для перехода обратно в HTML Razor ожидает увидеть имя тега HTML в виде обычного текста.Хотя вы можете добавлять атрибуты к тегам таким образом, поэтому ...
... почему бы не создать пользовательский Tag Helper , тогда ваш Razor изменится на что-то вроде этого:
@if (!string.IsNullOrEmpty(Model.HeadingName))
{
<dynamic type="@Model.HeadingName">
@Model.HeadingText
</dynamic>
}
Чтобы определить этот помощник тега, вам просто нужно создать класс, который наследуется от TagHelper
(в этом случае мы создаем класс DynamicTagHelper
):
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace MyNamespace.TagHelpers
{
public class DynamicTagHelper : TagHelper
{
public string Type { get; set; } //this must match the attribute
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = Type; // e.g. replaces <dynamic type="h2"> with <h2>
}
}
}
ТогдаЧтобы сделать класс DynamicTagHelper доступным для всех ваших представлений Razor, вы должны добавить директиву addTagHelper
в файл Views / _ViewImports.cshtml:
@addTagHelper *, MyNamespace
(Обязательно замените MyNamespace
на ваш фактическийnamespace)
Может быть излишним за то, что вы пытались сделать, но, по крайней мере, это может вдохновить вас!