将架构添加到 SiteMapPath 控件会导致 404 错误
adding schema to SiteMapPath control cause 404 error
以下代码会导致 404 错误。删除代码[itemtype="https://schema.org/BreadcrumbList"],然后没有错误但是使用面包屑检查器验证页面,它不被识别为面包屑。我可以知道我做错了哪一部分吗?
<asp:SiteMapPath ID="SiteMapPath1" itemtype="https://schema.org/BreadcrumbList" SkipLinkText="" runat="server" >
<NodeTemplate><a itemprop="item" href='<%#Eval("url") %>'><span itemprop="name"><%# Eval("title") %></span></a></NodeTemplate>
</asp:SiteMapPath>
asp:SiteMapPath
本身没有 itemtype
属性 所以错误(实际上 5xx 而不是 404).所以代码应该更详细一点。像这样。
<nav itemscope itemtype="http://schema.org/BreadcrumbList"><%--wrapper--%>
<asp:SiteMapPath ID="SiteMapPath1" runat="server" PathSeparator=" : ">
<NodeTemplate>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"><%--wrapper for each breadcrumb--%>
<meta itemprop="position" content="<%#Container.ItemIndex+1 %>" /> <%--required by Google --%>
<a itemprop="item url" href='<%#Eval("url") %>'>
<span itemprop="name"><%# Eval("title") %></span>
</a>
</span>
</NodeTemplate>
</asp:SiteMapPath>
</nav>
这是生成的 HTML
<nav itemscope itemtype="http://schema.org/BreadcrumbList">
<span id="SiteMapPath1"><a href="#SiteMapPath1_SkipLink"><img alt="Skip Navigation Links" src="/WebResource.axd?d=Ybg6Za1EIYGIkin6VPiwIFL99ITKyu6RhGnxJcLOO8DP1KA0-cdYa4ltoyl-vbOlqsJF4S8oq8kKVCD1XukqME04tF9L2ZSF8XWKW9sT_mc1&t=636668507379463780" width="0" height="0" style="border-width:0px;" /></a><span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<meta itemprop="position" content="1" />
<a itemprop="item url" href='/'><span itemprop="name">home</span></a></span>
</span><span> : </span><span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<meta itemprop="position" content="2" />
<a itemprop="item url" href='my-page.aspx'><span itemprop="name">My Page</span></a></span>
</span><a id="SiteMapPath1_SkipLink"></a></span>
</nav>
以下代码会导致 404 错误。删除代码[itemtype="https://schema.org/BreadcrumbList"],然后没有错误但是使用面包屑检查器验证页面,它不被识别为面包屑。我可以知道我做错了哪一部分吗?
<asp:SiteMapPath ID="SiteMapPath1" itemtype="https://schema.org/BreadcrumbList" SkipLinkText="" runat="server" >
<NodeTemplate><a itemprop="item" href='<%#Eval("url") %>'><span itemprop="name"><%# Eval("title") %></span></a></NodeTemplate>
</asp:SiteMapPath>
asp:SiteMapPath
本身没有 itemtype
属性 所以错误(实际上 5xx 而不是 404).所以代码应该更详细一点。像这样。
<nav itemscope itemtype="http://schema.org/BreadcrumbList"><%--wrapper--%>
<asp:SiteMapPath ID="SiteMapPath1" runat="server" PathSeparator=" : ">
<NodeTemplate>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"><%--wrapper for each breadcrumb--%>
<meta itemprop="position" content="<%#Container.ItemIndex+1 %>" /> <%--required by Google --%>
<a itemprop="item url" href='<%#Eval("url") %>'>
<span itemprop="name"><%# Eval("title") %></span>
</a>
</span>
</NodeTemplate>
</asp:SiteMapPath>
</nav>
这是生成的 HTML
<nav itemscope itemtype="http://schema.org/BreadcrumbList">
<span id="SiteMapPath1"><a href="#SiteMapPath1_SkipLink"><img alt="Skip Navigation Links" src="/WebResource.axd?d=Ybg6Za1EIYGIkin6VPiwIFL99ITKyu6RhGnxJcLOO8DP1KA0-cdYa4ltoyl-vbOlqsJF4S8oq8kKVCD1XukqME04tF9L2ZSF8XWKW9sT_mc1&t=636668507379463780" width="0" height="0" style="border-width:0px;" /></a><span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<meta itemprop="position" content="1" />
<a itemprop="item url" href='/'><span itemprop="name">home</span></a></span>
</span><span> : </span><span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<meta itemprop="position" content="2" />
<a itemprop="item url" href='my-page.aspx'><span itemprop="name">My Page</span></a></span>
</span><a id="SiteMapPath1_SkipLink"></a></span>
</nav>