【问题标题】:Kentico 9 transformation page/file URLKentico 9 转换页面/文件 URL
【发布时间】:2017-02-19 14:40:42
【问题描述】:

在我的自定义页面类型中,您可以选择上传的文件。很好,但是在我的 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>

我错过了一些东西。

【问题讨论】:

    标签: kentico


    【解决方案1】:

    您可以使用以下两种方法中的任何一种。不过,两者都有各自的缺点。

    &lt;a href="&lt;%# GetFileUrl("Process", "Something") %&gt;"Link here&lt;a/&gt;这会

    这样的缺点是如果“进程”字段中没有值,它将返回一个无效的 URL。所以我倾向于使用更好的东西(但不多)

    &lt;a href="/getattachment/&lt;%# ValidationHelper.GetGuid(Eval("Process"), Guid.Empty) %&gt;/&lt;%# ValidationHelper.GetString(Eval("NodeAlias"), "download") %&gt;"&gt;Item to download&lt;/a&gt;

    这将创建一个包含一些无效属性的有效 URL。这意味着如果 Process 字段中没有值,它将返回 00000000-0000-0000-0000-000000000000。如果 NodeAlias 字段为空,它将返回“下载”。再说一遍,虽然不是 100% 万无一失,但它在大多数情况下都能正常工作。

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

    我认为您需要的部分在“CMS.File 页面类型”部分:
    &lt;a href="&lt;%#GetDocumentUrl("FileField ", "kenticopicture")%&gt;"&gt;This is the link to the picture&lt;/a&gt;

    【讨论】:

    • 我第一次尝试了GetFileUrl,但它不是附件。当我使用这个时:GetFileUrl("Process")我得到这个/getattachment/214b6876-cb39-4a58-813f-19dcb7c788e4/Page-One.aspx,它给了我 404。永久 URL 是:/getdoc/214b6876-cb39-4a58-813f-19dcb7c788e4/BadgerCatalog.aspx。 Page-one.aspx 是我的自定义页面类型。也许你的第二种方法需要一小段时间。
    • 好吧,这有点帮助,看看我的答案的更新。
    • 谢谢。我更近了。我只需要获取文件名,而不是'kentiopicture.aspx'
    • 好的,所以我回到了我的自定义页面类型,将表单控件更改为 URL 选择器。在我的转型中,我现在有了这个&lt;%# IfEmpty(Eval("Process"),"N/A","&lt;a href=" + Eval("Process") +" target='blank' class='icon download'&gt;Download&lt;/a&gt;")%&gt;。在浏览器中,我得到了这个&lt;a href="/Resource-Centre/Call-Center-Services/Test/complaint_form.aspx" target="blank" class="icon download"&gt;Download&lt;/a&gt;。这似乎有效。
    【解决方案2】:

    查看transformation methods reference

    您可以使用 。这将返回一个图像标签。如果您想使用这些参数,还有一些其他参数可用于调整大小。

    【讨论】:

    • 我链接的不是图片,而是上传的 PDF。因为这是一个 cms.file 页面类型,我认为使用 GetDocumentURL 会起作用,但我没有得到实际的节点名称。
    【解决方案3】:

    请参阅您的转换编辑器上的“Transformation reference”链接,它指向您可以使用的所有可用转换方法。

    其中显示:

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

    /getattachment//ImageFileNameCanBeAnythingThough.jpg

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2016-12-23
      • 1970-01-01
      相关资源
      最近更新 更多