【发布时间】:2013-08-29 13:18:53
【问题描述】:
在 Orchard 摘要视图中,我显示的内容项可以是页面、博客文章或投影。
我已为所有这些类型附加了一个媒体选择器字段并将其命名为图片。
我目前正在使用这段可怕的代码从内容项访问媒体选择器:
if (contentItem != null)
{
try
{
mediaPicker = (MediaLibraryPickerField) contentItem.Blog.Picture;
}
catch (Exception e) {}
if (mediaPicker == null)
{
try
{
mediaPicker = (MediaLibraryPickerField)
contentItem.Page.Picture;
}
catch (Exception e) {}
}
if(mediaPicker == null)
{
try
{
mediaPicker = (MediaLibraryPickerField) contentItem.ProjectionPage.Picture;
}
catch (Exception e) {}
}
}
一定有更好的办法吗?
【问题讨论】:
-
我不认为有^_^
-
真的吗?混蛋!我以为这是显而易见的事情,当我看到它时让我感到很愚蠢。
-
代码还不错。您需要直接访问选择器字段吗?或者您可以使用展示位置来显示它吗?或者您可以将您的字段附加到零件,然后从零件驱动程序访问数据并将其发送到您的显示器。类似的东西
-
每次我需要添加新的 contentItem 类型时,代码都会变得更糟。我可以将内容项传递给@Display(contentItem),但我必须在其备用集合中添加一些内容,以便我可以对其进行模板化。
标签: orchardcms