我对Umbraco / C#很新,我想要做的是循环自定义媒体类型为我的应用程序的主页构建横幅,@bannerUrl总是返回images属性id而不是文件资源的路径。您将如何从Umbraco中创建的自定义媒体类型中检索图像文件路径。
请参阅代码:
var mediaFolder = Umbraco.Media(mediaFolderId);
var banners = mediaFolder.Children();
foreach (var banner in banners)
{
var bannerUrl = banner.image;
<div style="background-image:url(@bannerUrl);"></div>
}
变量bannerUrl
始终返回默认的图像ID,而不是URL的文件路径。如何让文件路径正常工作?在VS中调试器中检查横幅对象的内容时,我注意到Url属性有以下错误:
Url = 'banner.Url' threw an exception of type 'System.NotSupportedException'
虽然我可以使用.Url行中的某些东西,但这似乎不起作用,所以任何建议如何使用动态方式获取Umbraco中的图像属性的URL。
感谢。
答案 0 :(得分:16)
解决方案,如果有人碰巧遇到这个问题:
var bannerId = Umbraco.Media(banner.image); //banner.image is the property id.
var bannerUrl = bannerId.Url;
答案 1 :(得分:9)
要在MVC控制器/ API控制器中执行相同操作,一旦您拥有&#34;介质ID&#34;你也可以使用UmbracoHelper。
validates_uniqueness_of :service_type_reservations
答案 2 :(得分:3)
现在在Umbraco中使用强类型模型要好得多:
var bannerMediaItem = Umbraco.TypedMedia(banner.image); //banner.image is the property id.
var bannerUrl = bannerMediaItem.Url;