Я создал два десятка помощников HTML, которые я конвертирую в помощников тегов для ASP.NET 5 MVC 6 для создания метатегов Facebook Open Graph. Вот пример типа «веб-сайт»:
Index.cshtml
<open-graph-website title="Page Title"
main-image="new OpenGraphImage(
"~/img/open-graph-1200x630.png",
"image/png",
1200,
630)"
determiner="Blank"
site-name="Site Title">
Каждый тип объекта Open Graph имеет специальное пространство имен, которое необходимо добавить в тег заголовка, например.
_Layout.cshtml
<html>
<head prefix="website: http://ogp.me/ns/website#">
</head>
<body>
<!-- ...Omitted -->
</body>
</html>
Раньше мне удавалось сделать это с помощью HTML Helpers, используя ViewBag и свойство getter Namespace
в классе OpenGraphWebsite
следующим образом:
Index.cshtml
ViewBag.OpenGraph = new OpenGraphWebsite(
"Page Title",
new OpenGraphImage("/img/open-graph-1200x630.png", "image/png", 1200, 630)
{
Determiner = OpenGraphDeterminer.Blank,
SiteName = "Site Title"
};
_Layout.cshtml
<html>
<head @(ViewBag.OpenGraph == null ? null : ViewBag.OpenGraph.Namespace)>
@Html.OpenGraph((OpenGraphMetadata)ViewBag.OpenGraph);
</head>
<body>
<!-- ...Omitted -->
</body>
</html>
Есть ли способ добиться аналогичного результата с помощью помощников по тегам? Каким образом можно назвать помощник тега или обратиться к нему?