在 Orchard 的替代形状 cshtml 文件中获取分类字段的 url
Get url of a taxonomy field inside an alternate shape cshtml file in Orchard
我用Orchard 1.10.1
。我有一个 CustomContentType
有一个 "Group" Taxonomy field
。在 Content-CustomContentType.Detail.cshtml
替代中,我想对某个分类术语有一个 link。这是我的代码:
<a href='???'>@Model.ContentItem.CustomContentType.Group.Terms[0].Name</a>
如何让 url 替换上面代码中的 '???'
。
提前致谢。
您有几个选项可供选择。我刚刚将它们全部直接输入到浏览器中,而 Orchard 是一个难以驾驭其模型的野兽,所以如果它们在你面前爆炸,请告诉我,我会深入挖掘 :)
让果园把整个link
查看 TaxonomyItemLink.cshtml
文件,您可以看到可以像这样显示 link:
@using Orchard.Taxonomies.Models
@{
TermPart part = Model.ContentPart;
}
@Html.ItemDisplayLink(part)
所以在你的情况下你可以使用:
@Html.ItemDisplayLink((ContentPart)Model.ContentItem.CustomContentType.Group.Terms[0])
刚拿到URL
您可以使用 @Url.ItemDisplayUrl()
将可路由的内容项变成 url。
<a href="@Url.ItemDisplayUrl((ContentPart)Model.ContentItem.CustomContentType.Group.Terms[0])">
@Model.ContentItem.CustomContentType.Group.Terms[0].Name
</a>
因为它是一种扩展方法,所以您不能传递 dynamic
,所以您需要转换类型。这就是 (ContentPart)
存在的原因。
只需要 Slug
实际上,在这种情况下 TermsPart
class 上已经有一个 .Slug
属性,所以这也可能有效:
<a href="@Model.ContentItem.CustomContentType.Group.Terms[0].Slug">
@Model.ContentItem.CustomContentType.Group.Terms[0].Name
</a>
不过我不确定 slug 是只包含结束位还是完整的 url。
我用Orchard 1.10.1
。我有一个 CustomContentType
有一个 "Group" Taxonomy field
。在 Content-CustomContentType.Detail.cshtml
替代中,我想对某个分类术语有一个 link。这是我的代码:
<a href='???'>@Model.ContentItem.CustomContentType.Group.Terms[0].Name</a>
如何让 url 替换上面代码中的 '???'
。
提前致谢。
您有几个选项可供选择。我刚刚将它们全部直接输入到浏览器中,而 Orchard 是一个难以驾驭其模型的野兽,所以如果它们在你面前爆炸,请告诉我,我会深入挖掘 :)
让果园把整个link
查看 TaxonomyItemLink.cshtml
文件,您可以看到可以像这样显示 link:
@using Orchard.Taxonomies.Models
@{
TermPart part = Model.ContentPart;
}
@Html.ItemDisplayLink(part)
所以在你的情况下你可以使用:
@Html.ItemDisplayLink((ContentPart)Model.ContentItem.CustomContentType.Group.Terms[0])
刚拿到URL
您可以使用 @Url.ItemDisplayUrl()
将可路由的内容项变成 url。
<a href="@Url.ItemDisplayUrl((ContentPart)Model.ContentItem.CustomContentType.Group.Terms[0])">
@Model.ContentItem.CustomContentType.Group.Terms[0].Name
</a>
因为它是一种扩展方法,所以您不能传递 dynamic
,所以您需要转换类型。这就是 (ContentPart)
存在的原因。
只需要 Slug
实际上,在这种情况下 TermsPart
class 上已经有一个 .Slug
属性,所以这也可能有效:
<a href="@Model.ContentItem.CustomContentType.Group.Terms[0].Slug">
@Model.ContentItem.CustomContentType.Group.Terms[0].Name
</a>
不过我不确定 slug 是只包含结束位还是完整的 url。