我已经构建了两打 HTML 帮助程序,我将其转换为 ASP.NET 5 MVC 6 的标记帮助程序,以生成 Facebook Open Graph 元标记。这是“网站”类型的示例:
索引.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 对象类型都有一个特殊的命名空间,必须将其添加到 head 标签中,例如
_Layout.cshtml
<html>
<head prefix="website: http://ogp.me/ns/website#">
</head>
<body>
<!-- ...Omitted -->
</body>
</html>
Namespace
过去,我通过使用 ViewBag 和类上的 getter 属性设法使用 HTML Helpers 做到这一点,OpenGraphWebsite
如下所示:
索引.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>
有没有办法使用标签助手实现类似的结果?命名标签助手或引用它的某种方式?