令人烦恼的是,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";
}
}
****免责声明:我是 Episerver CMS 的新手,可能会错过一些非常简单的东西(如果合适的话,可以被羞辱)。*
最佳答案
我不太确定您需要完成什么,但可能应该注意的是,在编辑 MediaData
内容时,可以通过单击发布按钮来获取其 URL (请注意下载此文件链接):
编辑:另一个建议是为 MediaFile
UI 提示创建一个自定义编辑器 dijit(使用 Dojo)。这样您就可以显示 URL,而无需添加其他属性。
关于c# - 在 Episerver CMS 中,如何创建一个属性来显示上传的图像或 PDF 资源的源 URL(在 Episerver 编辑器界面中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994109/