2015-05-22 103 views
1

我正在使用orchard 1.9,並且正在構建一個服務,我需要獲取當前的URL。獲取Orchard默認頁面的網址

我有OrchardServices,並從我能得到像這樣的網址:

_orchardServices.WorkContext.HttpContext.Request.Url.AbsolutePath; 

這就像我已經創建了網頁/路由的魅力,但是當我去登錄或註冊頁面(/用戶/帳戶/登錄)絕對URL是/我無法找到URL或至少有任何跡象表明我在登錄或註冊。

任何人都知道我可以如何獲得完整的網址?

回答

2

如果我明白你在問什麼,你可以使用ContentItemExtension類中的ItemAdminLink

您需要將引用添加到Orchard.ContentManagementOrchard.Mvc.HtmlOrchard.Utility.Extensions,但隨後你將有機會獲得@Html@Url幫手。

從那裏,你將不得不使用以獲得鏈接到該項目的能力: @Html.ItemDisplayLink((ContentItem)Model.ContentItem)

鏈接到項目的URL爲使用標題:@Url.ItemDisplayUrl((ContentItem)Model.ContentItem)

,你應該得到同樣的爲管理區域使用這些:

@Html.ItemAdminLink((ContentItem)Model.ContentItem) 
@Url.ItemAdminUrl((ContentItem)Model.ContentItem) 

他們會給你相對路徑,例如'/blog/blog-post-1',但它聽起來像你已經有了一個部分的解決方案,所以這將是一個結合兩者的問題。

雖然我敢肯定有(多)做的更好的方法,你可以得到絕對URL中使用:

String.Format("{0}{1}", WorkContext.CurrentSite.BaseUrl, yourRelativeURL); 

...但如果任何人有這樣做,然後更高貴的方式在下面發表評論。

希望能幫助別人。