如何使用N2CMS获取另一个内容项的URL?

时间:2016-07-02 02:24:02

标签: c#-4.0 n2cms

我使用N2CMS版本2.9.6.8,假设我打开了帐户/登录页面,然后我想点击登录表单下方的订阅链接。

那么,如何获取订阅页面的url以正确构建ahref标签?

该网站有多种语言,如果我想以这种方式构建href标记:

<a href="@Url.Action("Index", "Subscription")">Wanna subscribe?</a>

我将获得http://mysiteweb.com/Subscription/Index,这将提供400找不到的页面而不是http://mywebsite.com/en/subscription(具有语言ID)。

Subscription页面已经通过管理面板发布了,所以我想可以在没有任何硬编码的情况下在其上创建一个href?

希望我们有一个N2CMS粉丝..

感谢您的帮助,

大卫

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。您将能够使用CMS提供的API获取完整的URL。

例如,假设您有一个名为ChangePasswordViewModel的控件,它继承自ContentItem,那么您就拥有了相关的控制器。无论当前语言如何,您都可以通过以下方式获取完整的URL:

@{ 
var item = Find.Items
    .Where.Type.Eq(typeof(ChangePasswordViewModel)).And.State.Eq(ContentState.Published)
    .Select().SingleOrDefault();
}

然后<a href="@item.Url">Change password</a>

总而言之,不要忘记在管理面板部分添加ChangePasswordViewModel控件,一切都可以正常使用API​​。

大卫