我正在使用orchard 1.9,我正在构建一个服务,我需要获取当前的URL。
我有OrchardServices,从中我可以得到这样的URL:
_orchardServices.WorkContext.HttpContext.Request.Url.AbsolutePath;
这就像我创建的页面/路径的魅力一样,但是当我进入登录或注册页面(/ Users / Account / LogOn)时,绝对URL是/并且无论如何我无法找到URL或至少我在LogOn或Register中的任何指示。
任何人都知道如何获得完整的网址?
答案 0 :(得分:2)
如果我了解您的问题,可以使用ContentItemExtension
课程中的Orchard.ContentManagement
。
您需要添加对Orchard.Mvc.Html
,Orchard.Utility.Extensions
和@Html
的引用,但您可以访问@Url
和@Html.ItemDisplayLink((ContentItem)Model.ContentItem)
帮助。< / p>
从那里,您将能够使用以下方式获取项目的链接:
@Url.ItemDisplayUrl((ContentItem)Model.ContentItem)
使用以下内容作为标题的项目的链接:@Html.ItemAdminLink((ContentItem)Model.ContentItem)
@Url.ItemAdminUrl((ContentItem)Model.ContentItem)
您应该使用以下内容获得相同的管理区域:
'/blog/blog-post-1'
他们会给你相对路径,例如String.Format("{0}{1}", WorkContext.CurrentSite.BaseUrl, yourRelativeURL);
,但听起来你已经得到了部分解决方案,所以将这两者结合起来就是一个问题。
虽然我确定有更好的方法,但您可以使用以下方式获取绝对网址:
.rf-ds-nmb-btn {
width: 2em;
}
...但如果有人有更优雅的方式,那么在下面发表评论。
希望能有所帮助。