获取Orchard默认页面的网址

时间:2015-05-22 12:55:52

标签: url model-view-controller orchardcms httpcontext

我正在使用orchard 1.9,我正在构建一个服务,我需要获取当前的URL。

我有OrchardServices,从中我可以得到这样的URL:

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

这就像我创建的页面/路径的魅力一样,但是当我进入登录或注册页面(/ Users / Account / LogOn)时,绝对URL是/并且无论如何我无法找到URL或至少我在LogOn或Register中的任何指示。

任何人都知道如何获得完整的网址?

1 个答案:

答案 0 :(得分:2)

如果我了解您的问题,可以使用ContentItemExtension课程中的Orchard.ContentManagement

您需要添加对Orchard.Mvc.HtmlOrchard.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;
}

...但如果有人有更优雅的方式,那么在下面发表评论。

希望能有所帮助。