Как показать несколько изображений средства выбора мультимедиа umbraco на странице с помощью макроса

Здравствуйте, люди из stackoverflow, надеюсь, вы поможете мне, может быть, с простым вопросом, но я не смог найти решение в другом месте, и я работаю с umbraco уже неделю и никогда раньше не использовал часть mvc, поэтому все для меня ново.

Таким образом, большая проблема заключается в том, как я создаю макрос для отображения этих изображений, которые я выбираю из средства выбора нескольких медиафайлов, макрос должен заканчиваться показом.

<img src="img1.gif" height="50" width="50">
<img src="img2.gif" height="50" width="50">

И так далее в зависимости от количества изображений. (размер просто образец)

Я пробовал что-то вроде этого

 @var selectedMedia3 = @Library.MediaById(Model.mainImage);
      <img src="@selectedMedia3.umbracoFile" width="@selectedMedia3.umbracoWidth" height="@selectedMedia3.umbracoHeight" alt="@selectedMedia3.Name"/>                       
    }

Но я не знаю, как разобрать идентификатор изображения в макрос. и когда я выбираю более одного файла, мне нужен цикл, но я не знаю, как зациклить данные нескольких средств выбора мультимедиа, поэтому я немного потерялся.


person user3091387    schedule 11.12.2013    source источник


Ответы (3)


Можете ли вы сообщить нам, какую версию Umbraco вы используете. За последние годы Umbraco претерпел ряд фундаментальных изменений в различных версиях. Приведенный ниже код должен направить вас в правильном направлении для средства выбора нескольких изображений Umbraco 7 с атрибутом propertyAlias ​​partnersLogos.

    @if (Model.Content.HasValue("partnersLogos"))
    {
        var partnersImagesList =  Model.Content.GetPropertyValue<string>("partnersLogos").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);
        var partnersImagesCollection = Umbraco.TypedMedia(partnersImagesList).Where(x => x != null);
        foreach (var partnerImage in partnersImagesCollection)
        {
            <img src="@partnerImage.Url" alt="partners logo" />
        }
    }
person Jimbo Jones    schedule 06.03.2014
comment
Я использую umbraco 7. и я совершенно забыл этот вопрос, который я задавал некоторое время назад, поэтому я действительно понял это самостоятельно, я обнаружил, что средство выбора нескольких изображений получает строку с идентификатором, поэтому я знал, что могу просто разделить с ',' так что я сделал, как вы описали, просто разделите строку на каждый ',', а затем зациклите список. Но все равно спасибо за повторение, возможно, когда-нибудь это поможет другому. - person user3091387; 06.03.2014

Если кто-то совершает ту же ошибку, что и я, и не понимает, что существует разница между ныне устаревшим средством выбора медиафайлов и новым средством выбора медиафайлов "Umbraco.MediaPicker2" (по крайней мере, начиная с 7.6.1), то, пожалуйста, прочитайте документацию по Umbraco. Веб-сайт.

https://our.umbraco.org/documentation/Getting-Started/Backoffice/Property-Editors/Built-in-Property-Editors/Media-Picker2

@{
    var typedMultiMediaPicker = Model.Content.GetPropertyValue<IEnumerable<IPublishedContent>>("sliders");
    foreach (var item in typedMultiMediaPicker)
    {
        <img src="@item.Url" style="width:200px"/>
    }
}
person Nattrass    schedule 17.07.2017

Я не совсем уверен, что вы спрашиваете, как настроить MVC в umbraco или получить значения из средства выбора изображений.

Но если вы хотите начать с MVC в umbraco, проверьте это: http://24days.in/umbraco/2013/creating-reusable-code-in-mvc-apps/

person antao    schedule 11.12.2013
comment
Я пытаюсь получить изображения из средства выбора нескольких изображений. но в любом случае спасибо за ссылку, может быть, я смогу чему-то научиться и там, мне нужны все знания, которые я могу получить в этой области! - person user3091387; 12.12.2013
comment
Если вы запросите значение средства выбора изображений, вы, вероятно, получите в ответ строку идентификаторов (выбранных вами), которые представляют идентификаторы выбранных узлов. Имея эти идентификаторы, запросите их, чтобы получить от них путь или какое-либо другое свойство, которое вам нужно. - person antao; 12.12.2013
comment
да, я получаю строку идентификаторов. затем я спрашиваю, как запросить их путь? - person user3091387; 18.12.2013
comment
Привет, это медиа-узел, верно? Вы можете использовать Umbraco Helper, если у вас версия 6: @Umbraco.TypedMedia(idofyournode) (бритва) или uQuery: Media yourMediaNode = umbraco.uQuery.GetMedia(idofyournode); - person antao; 18.12.2013