Umbraco:财产查询(原型)

时间:2014-10-23 06:48:11

标签: asp.net linq umbraco umbraco7

我设置了一个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

1 个答案:

答案 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> 
}