c# - 在 Episerver CMS 中,如何创建一个属性来显示上传的图像或 PDF 资源的源 URL(在 Episerver 编辑器界面中)?

标签 c# asp.net-mvc asp.net-mvc-5 episerver episerver-10

令人烦恼的是,Episerver 中的 MediaData 类没有任何基本属性,例如源 URL、替代文本等。我​​正在尝试实现一个类来继承 MediaData 并为某种类型的媒体 Assets 提供特定属性(本例中为 PDF)。

我尝试手动设置属性值并覆盖 SetDefaultValues 事件,但无济于事。虽然,我确实看到了一个文本框或一个基于“SrcUrl”类型的 URL 选择器,但它是空白的,并且永远不会填充上传的 PDF 的 URL。

[ContentType(
    DisplayName = "PDF File",
    GUID = "xxxxxxx-xxxx-xxxxxx-xxxx-xxxxxxxxxxx")]
[MediaDescriptor(ExtensionString = "pdf")]
public class PdfFile : MediaData
{
    [UIHint(UIHint.MediaFile)]
    [Display(Name = "PDF URL",
        Description = "Link to view or reference PDF",
        GroupName = SystemTabNames.Content,
        Order = 10)]
    public virtual string SrcUrl
    {
        get { return UrlResolver.Current.GetUrl(this.ContentLink); }
        set { value = UrlResolver.Current.GetUrl(this.ContentLink); }
    }

    // Sets the default property values
    public override void SetDefaultValues(ContentType contentType)
    {
        base.SetDefaultValues(contentType); 

        this.SrcUrl = UrlResolver.Current.GetUrl(this.ContentLink) ?? "Default";
    }
}

PDF URL property rendering blank in Episerver editor interface when viewing a PDF

****免责声明:我是 Episerver CMS 的新手,可能会错过一些非常简单的东西(如果合适的话,可以被羞辱)。*

最佳答案

我不太确定您需要完成什么,但可能应该注意的是,在编辑 MediaData 内容时,可以通过单击发布按钮来获取其 URL (请注意下载此文件链接):

Episerver publish button

编辑:另一个建议是为 MediaFile UI 提示创建一个自定义编辑器 dijit(使用 Dojo)。这样您就可以显示 URL,而无需添加其他属性。

关于c# - 在 Episerver CMS 中,如何创建一个属性来显示上传的图像或 PDF 资源的源 URL(在 Episerver 编辑器界面中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994109/

相关文章:

c# - 将图像映射到 asp.net mvc 中的页面

C#获取电脑MAC地址 "OFFLINE"

c# - 在 MVC 上执行编辑时如何保留某些字段的原始值?

javascript - 谷歌地图 API v3 在按钮点击时隐藏特定标记

asp.net - 在 Linux 上部署 ASP.NET MVC : Best Practices, 工具和惊喜

asp.net-mvc - 将静态网站从 Azure 存储帐户添加到 Asp.net MVC 应用程序?

c# - 从 mvc5 中直接下载 pdf 保护并隐藏 url 和文件夹

c# - Devexpress GridControl for win forms是否支持分页?

c# - 此商家已禁用 DPRP。 Paypal 错误

c# - StreamReader 读取包含的最后一行