Kentico 9转换页面/文件URL

时间:2017-02-08 14:24:25

标签: kentico

在我的自定义页面类型中,您可以选择上传的文件。这很好,但在我的ascx转换中,我很难获得URL。该字段为“流程”。

这就是我现在所拥有的。

<%# IfEmpty(Eval("Process"),"N/A","<a href=" + Eval("Process") +" target='blank' class='icon download'>Download</a>")%>    

渲染时,html是这样的:

<a href="214b6876-cb39-4a58-813f-19dcb7c788e4" target="blank" class="icon download">Download</a>

我错过了什么。

3 个答案:

答案 0 :(得分:2)

您可以使用以下两种方法之一。两者都有他们的垮台。

<a href="<%# GetFileUrl("Process", "Something") %>"Link here<a/>这将

如果在&#34;过程&#34;字段,它将返回无效的URL。所以我倾向于使用一些更好的东西(但不多)

<a href="/getattachment/<%# ValidationHelper.GetGuid(Eval("Process"), Guid.Empty) %>/<%# ValidationHelper.GetString(Eval("NodeAlias"), "download") %>">Item to download</a>

这将创建一个包含一些无效属性的有效URL。意味着如果Process字段中没有值,它将返回00000000-0000-0000-0000-000000000000。如果NodeAlias字段为空,它将返回&#34; download&#34;。所以,不是100%万无一失,但在大多数情况下效果都很好。

<强>更新
看看这个链接:
https://devnet.kentico.com/articles/options-for-file-fields-in-structured-data

我认为您在此处需要的部分位于&#34; CMS.File页面类型&#34;部分:
<a href="<%#GetDocumentUrl("FileField ", "kenticopicture")%>">This is the link to the picture</a>

答案 1 :(得分:0)

查看transformation methods reference

您可以使用&lt;%#GetImage(Eval(&#34; Process&#34;))%&gt;。这将返回一个Image标签。如果您想使用这些参数,还有其他几个参数可用。

答案 2 :(得分:0)

请参阅Trasnformation编辑器中的“Transformation reference”链接,它会转到您可以使用的所有可用转换方法。

在其中显示:

这将生成实际的图像标记。如果你想要一个链接,通常是

/ getattachment /&lt;%#Eval(“TheImage”)%&gt; / ImageFileNameCanBeAnythingThough.jpg

例如: /getattachment/1936c69d-a28c-428a-90a7-09154918da0f/Christmas.jpg