EPiServer - href 到 ContentReference 属性的“内容”?

Chr*_*Run 1 episerver href

问候所有 EPiServer 专家。

环境:EPiServer 7。

问题描述:

我有一个具有不同属性的 PageType。其中一个属性是 ContentReference。

[CultureSpecific]
[Display(
    Name = "Specific documents",
    GroupName = SystemTabNames.Content,
    Order = 1)]
public virtual ContentReference SpecificDocument { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我看来,我显示一个链接到不同操作的图标,具体取决于属性 SpecificDocument 是否为空。ContentReference 属性应该包含一个文件,例如 PDF。

@model IPageViewModel<SpacePage>

<div class="row">

   @if (Model.CurrentPage.SpecificDocument != null)
   {
      <a class="image" href="#"> </a>                                
   }
   else
   {
      <a class="icon" href="some action if the property is empty"></a> 
   }
</div>
Run Code Online (Sandbox Code Playgroud)

我的问题:

如果 SpecificDocument 属性不为 null,我如何href到ContentReference 属性中的特定内容

说明:当用户单击该图标时,它会在窗口中打开特定文档 (PDF) 或下载它。

请记住,我是 EPiServer 开发的新手。

问候,克里斯

Ted*_*erg 5

您可以使用UrlResolver.Current获取内容引用的 URL:

var url = UrlResolver.Current.GetUrl(CurrentPage.SpecificDocument)
Run Code Online (Sandbox Code Playgroud)

有关不同 URL 的一些深入信息:http://world.episerver.com/blogs/Linus-Ekstrom/Dates/2014/2/The- Three-rendering-modes-of-EPiServer/

此外,您可能需要使用ContentReference.IsNullOrEmpty而不是仅对属性进行 null 检查,以确保设置属性。