Я довольно новичок в Razor MVC и работаю с некоторым программным обеспечением, которое не обеспечивает современную функциональность.Поэтому я пытаюсь динамически создавать теги OG, используя вызовы типа «@ Model.MetaTitle» в некоторых моих точных C-фрагментах на основе HTML (.cshtml).
Это для сайта электронной коммерции.
Пока что я придумал множество способов динамического создания большинства тегов Open Graph, вот мой код:
<title>@Model.MetaTitle</title>
<meta name="description" content="@Model.MetaDescription" />
<link rel="canonical" href="https://example.com@(Request.RawUrl.Split(new[] {'?'})[0])" />
<meta property="fb:app_id" content="" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="@Model.MetaTitle" />
<meta property="og:description" content="@Model.MetaDescription" />
<meta property="og:url" content="https://example.com@(Request.RawUrl.Split(new[] {'?'})[0])" />
<meta property="og:site_name" content="My Website" />
<meta property="og:image" content="" />
<meta property="og:image:secure_url" content="" />
<meta property="og:image:alt" content="@Model.MetaTitle" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="" />
<meta name="twitter:description" content="@Model.MetaDescription" />
<meta name="twitter:title" content="My Website" />
<meta name="twitter:site" content="@("@my_twitter")" />
<meta name="twitter:creator" content="@("@my_twitter")" />
Как видите, остались только данныездесь должны быть указаны свойства "og: image".
Просмотры страниц генерируются с использованием XSLT / XML, и в некоторых случаях я могу получить определенные данные, используя синтаксис Razor.Несмотря на то, что «ProductImage» вызывается в каждом файле XSLT / XML, он объявляется как переменная следующим образом:
<xsl:value-of select="$ProductImage" disable-output-escaping="yes"/>
Итак, как передать этот «$ ProductImage», который выводит URL в хранилищепродукт в моем мета-свойстве "og: image" с ограниченным доступом к сборке?
Я нашел способ использования jQuery, но отладчик объектов Facebook все еще жалуется на отсутствие тега og: image.Предполагая, что скриптовые теги не передаются вовремя.
Пример (извлечение из существующих данных schema.org на странице):
var ogUrl = $(".product-page meta[itemprop='image']").attr("content");
$('head').append("<meta property='og:image' content='" + ogUrl + "'/>");
$('head').append("<meta property='og:image:secure_url' content='" + ogUrl + "'/>");
$('head').append("<meta name='twitter:image' content='" + ogUrl + "' />");
Это то, где я сейчас застрял.Нужно передать URL к изображению продукта в тегах og ... TIA.
Update это строка, в которой формируется переменная:
<xsl:variable name="ProductImage" select="aspdnsf:LookupProductImage(ProductID, ImageFilenameOverride, SKU, 'large', 1, $AltText)"/>