Так как я использую asp.net MVC мнения визуализируются в моем теле с помощью @RenderBody()
Мой вопрос: я правильно используя схему. org microdata?Правильное использование микроданных itemscopes в сочетании с ASP.NET MVC
В моем примере у меня есть html, который является WebSite, он имеет некоторые метаданные в заголовке для объектов WebSite itemscope. Затем я устанавливаю mainEntityOfPage в WebPage и добавляю верхний колонтитул. Некоторые страницы, которые будут отображаться в @RenderBody(), имеют собственную область действия (например, ContactPage), а другие имеют только данные с некоторыми предметами предметов продукта или места.
Это правильный способ использования микроданных?
упрощенный _Layout.cshtml
<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/WebSite">
<head prefix="og: http://ogp.me/ns#">
<meta property="og:title" content="test">
<meta itemprop="about" content="test">
</head>
<body itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
<div class="myheader" itemscope itemtype="http://schema.org/WPHeader">
<div class="...">
<nav class="navbar navbar-default navbarwrapper" itemscope itemtype="http://schema.org/SiteNavigationElement">
@*...*@
</div>
</div>
</div>
@RenderBody()
<div>
@* some other stuff*@
</div>
<div class="myfooter" itemscope itemtype="http://schema.org/WPFooter">
@*...*@
</div>
</body>
упрощенный Index.cshtml (Главная), который показан в @RenderBody(), и, следовательно, на веб-странице itemscope без каких-либо других itemscopes:
<div class="...">
@* content *@
</div>
Упрощенный Contact.cshtml (Home), который показан в @RenderBody() и, следовательно, в объекте WebPage с другими областями:
<div class="banner">
@* banner stuff *@
</div>
<div class="myMiddleContent" itemscope itemtype="http://schema.org/ContactPage">
<div class="container">
<div class="row">
@*...*@
<div class="col-md-6" itemscope itemtype="http://schema.org/Place">
@*...*@
</div>
</div>
</div>
</div>
UPDATE:
Это то, что я есть сейчас:
<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/WebSite">
<head prefix="og: http://ogp.me/ns#">
<meta property="og:title" content="test">
<meta itemprop="about" content="test">
<meta itemprop="headline" content="my fancy pancy site">
<meta itemprop="cool, things here">
</head>
<body itemprop="mainEntity" itemscope itemtype="http://schema.org/ContactPage"> @* or /WebPage *@
<div class="myheader" itemprop="hasPart" itemscope itemtype="http://schema.org/WPHeader">
<div class="...">
<nav class="navbar navbar-default navbarwrapper" itemprop="hasPart" itemscope itemtype="http://schema.org/SiteNavigationElement">
@*...*@
</div>
</div>
</div>
@* injected via @RenderBody() *@
<div class="banner">
@* banner stuff *@
</div>
<div class="myMiddleContent">
<div class="container">
<div class="row">
@* list of products...*@
<div class="col-md-6" itemscope itemtype="http://schema.org/Product">
@*product x...*@
</div>
<div class="col-md-6" itemscope itemtype="http://schema.org/Product">
@* product y...*@
</div>
</div>
</div>
</div>
<div itemprop="contentLocation" itemscope itemtype="http://schema.org/Museum">
<link itemprop="additionalType" href="http://schema.org/TouristAttraction">
<meta itemprop="name" content="Foo bar">
<meta itemprop="sameAs" content="http://www.facebook.com/FooBar">
<div itemprop="openingHoursSpecification" itemscope itemtype="http://schema.org/OpeningHoursSpecification">
@*...*@
</div>
</div>
@* end of injected via @RenderBody() *@
<div>
@* some other stuff*@
</div>
<div class="myfooter" itemprop="hasPart" itemscope itemtype="http://schema.org/WPFooter">
@*...*@
</div>
@*website/webpage creator/author/etc... *@
<div itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness">
<meta itemprop="name" content="...">
@*...*@
</div>
<div itemprop="copyrightHolder" itemscope itemtype="http://schema.org/LocalBusiness">
@*...*@
</div>
</body>
</html>
Я не думаю, что с вашим подходом что-то не так. Я предлагаю запустить вашу визуализированную страницу через валидатор и проверить, соответствует ли результат. –
Я использовал google, yandex и т. Д., Но один говорит вам, что это неправильно, другие говорят вам, что это правильно. но я не знаю, если это потому, что они не поддерживают все или если это неправильно или ... – juFo
Хм, я думаю, это зависит от ошибки. Я нахожу, что google поддерживает большинство элементов. –