我使用MVC站點地圖提供者4,並且希望始終顯示規範標記,而不僅僅是當第二個鏈接存在時。有沒有人可以幫助我?總是顯示mvc站點地圖提供者的標準標記
0
A
回答
0
要做到這一點,最好的方法是編輯(或創建另一個)模板來構建規範標籤。如果您使用NuGet軟件包進行安裝,則在/ Views/Shared/DisplayTemplates文件夾中,您將擁有一個CanonicalHelperModel.cshtml文件(如果使用的是Webforms而不是剃鬚刀,則使用.ascx擴展名)。默認情況如下所示:
@model MvcSiteMapProvider.Web.Html.Models.CanonicalHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models
@if (!String.IsNullOrEmpty(Model.CurrentNode.CanonicalUrl)) {
<link rel="canonical" href="@Model.CurrentNode.CanonicalUrl" />
}
如果沒有規範的URL通過添加else塊來解析,您可以更改它以便使用URL屬性。
@model MvcSiteMapProvider.Web.Html.Models.CanonicalHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models
@if (!String.IsNullOrEmpty(Model.CurrentNode.CanonicalUrl)) {
<link rel="canonical" href="@Model.CurrentNode.CanonicalUrl" />
} else {
<link rel="canonical" href="@string.Format("http://www.mysite.com{0}, Model.CurrentNode.Url)" />
}
您可能需要設計一個更好的方式來獲取基本網址(域名和HTTP/HTTPS),並可靠地與URL屬性串連它,規範標籤需要一個絕對的URL。您可以只抓取當前的Request.RawUrl而不是Model.CurrentNode.Url,但是您需要確保在將其顯示在頁面上之前對其進行了適當的清理(和HTML編碼)以防止XSS攻擊。但是,如果使用Request.RawUrl來獲取基本URL(通過將其加載到Uri對象中,然後使用基本URL部分),則應該沒問題。
這隻適用於在SiteMap中定義了匹配節點的頁面。如果從外部源(如數據庫)讀取節點,應確保數據庫中的每個記錄都在SiteMap中有一個節點,因此存在一對一關聯(至少對於您希望在搜索引擎中編入索引的頁面)。在這種情況下,您不應該使用preservedRouteParameters。有關該主題的更多信息,請參閱How to Make MvcSiteMapProvider Remember a User's Position。
在附註上,確實沒有必要去做你所要求的事情,因爲唯一需要規範標籤的頁面是重複的。
相關問題
- 1. MVC站點地圖提供者
- 2. umbraco 4.8.1節點圖標總是顯示「未發佈」圖標
- 3. UIView不顯示我的地圖,只顯示標準地圖
- 4. 使MVC站點地圖只發送相關節點到可見性提供者
- 5. Google地圖標記標題不顯示
- 6. EFCodeFirst 4.2和提供者清單標記
- 7. MVC網站地圖提供者持久參數
- 8. Osmdroid總是顯示標記描述
- 9. 在Android的谷歌地圖點擊標記顯示地址?
- 10. 如何總是顯示錨點標記的alt屬性
- 11. 在google上的顯示標記地圖
- 12. Asp.net Web.config文件 - 移動站點地圖提供者在web.config
- 13. 用戶提供的內容的標準/通用標記語言?
- 14. Google地圖標記工具提示
- 15. 谷歌地圖不顯示地圖,並不顯示標記
- 16. 我的谷歌地圖custome標記不會顯示在我的WordPress站點
- 17. 谷歌地圖API - 顯示多個標記工具提示
- 18. 在谷歌地圖上的其他標記上顯示標記
- 19. Google地圖標記只顯示特定字段中的標記
- 20. 谷歌地圖按小時和地點顯示標記
- 21. MVC網站地圖提供商我使用MVC3網站地圖供應商,顯示站點地圖和breadcrumps我project.My情況如下不設
- 22. 啓用站點地圖提供商
- 23. MVC站點地圖提供程序 - SiteMapPath性能非常慢?
- 24. 獲取在Android中的地圖上顯示標記的點
- 25. 標記地圖顯示不正確
- 26. AngularJS +谷歌地圖不顯示標記
- 27. 顯示移動標記在地圖
- 28. 使用JavaScript顯示Google地圖標記
- 29. 谷歌地圖標記不顯示javascript
- 30. 谷歌地圖v3 - 不顯示標記