我设置了一个Archetype属性编辑器,其中包含多个fieldsets,每个fieldset包含2个字段:一个文本框和一个用于图像的媒体选择器。
在GetImage(string imgId){}
方法中,我尝试根据媒体选择器中的imgId
参数获取带有图片网址和文本框值的字段集,并返回htmlString。不确定这是否是最好的主意,我愿意接受建议。
public static string GetIcon(string imgId)
{
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var myProperty = (IPublishedContent)umbracoHelper.Content(5369).GetPropertyValue<ArchetypeModel>("myProperty");
return "";
}
要从财产中获取所有物品,我会这样做:
foreach (var item in myProperty)
{
var imgId = item.GetValue("img") //get the image id
var img = umbracoHelper.TypedMedia(imgId);
<img src="@img.Url" />
<span>@item.GetValue("imgTitle")</span>
}
我注意到在调试archetype属性中的字段集时没有内置唯一ID&????
如何通过比较媒体选择器中的图像ID来获取图像和textBox值?
类似于:??
var icon = myProperty.Where(x => x.icon == iconId); //wrong
答案 0 :(得分:0)
我也玩过这个。我做的是:
var helper = new UmbracoHelper(UmbracoContext.Current);
var media = helper.TypedMedia(iconId);
var imageUrl = media.GetPropertyValue<string>("umbracoFile");
这将返回如下URL:“/ media / 1001 / 1.jpg”。通过这种方式,您可以获得更清晰的视图:
foreach (var item in myProperty)
{
<img src="@item.imageUrl" />
<span>@item.GetValue("imgTitle")</span>
}