web-dev-qa-db-fra.com

Afficher une image de la médiathèque dans Umbraco 7

Cela devrait être quelque chose d'embarrassant de simple, mais je ne peux pas le faire fonctionner: je voudrais simplement afficher une image qui a été téléchargée dans la médiathèque d'Umbraco (Umbraco 7.1.1) dans un modèle de vue partielle. Le code est

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{   
    var imgNode = CurrentPage.BannerBackgroundImage;
    var imgUrl = umbraco.library.NiceUrl(imgNode);
    <div id="banner-wrapper" style="background: url('@imgUrl') center center no-repeat;">
        <!-- some irrelevant content -->
    </div>
}

où BannerBackgroundImage est une propriété personnalisée de la page. Cependant, lorsque ceci est affiché, le @imgUrl est remplacé par #.

Les autres alternatives que j'ai essayées sont plusieurs images de Media Picker , comment afficher une image Media Picker , obtenir une image d'un support avec Razor et afficher une image à partir de Media Picker , pour n'en nommer que quelques uns.

J'apprécierais vraiment si quelqu'un pouvait m'aider avec ce que je crois être une question de recrue!

23
Informagic

J'ai trouvé cette voie facile et propre:

@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
    var m = Umbraco.Media(CurrentPage.Image);

    <img src="@m.Url" alt="@m.UrlName" />
}

J'espère que ça aide quelqu'un d'autre

35
Jesus Mogollon

Merci Jésus Mogollon,

Je l'ai réduit à:

<img src="@Umbraco.Media(CurrentPage.headerBackgroundImage).Url" alt="">

J'ai réglé le fichier sur obligatoire, donc j'espère que je n'aurai pas besoin de la partie if statement.

14
AsciiSmoke

Ayant eu une période si inattendue pour quelque chose que j'aurais pensé être facile, cette lame a fonctionné pour moi.

@if (Model.Content.HasValue("OtherImages"))
{
   var otherImages = Model.Content.GetPropertyValue<List<IPublishedContent>>("OtherImages");
   foreach (var image in otherImages)
   {
      if (image != null)
      {
         <img src="@image.Url" alt="@image.Name" class="img-responsive img-rounded"  />
      }
   }
}

La plupart des autres publications n'ont pas fonctionné pour moi, mais je pense que l'API a un peu changé. J'utilise Umbraco 7.6.1. Je ne suis pas sûr que le contrôle nul soit nécessaire, mais il ne fera certainement aucun mal.

4
NickBeaugié

Essaye ça

@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
    var m = Umbraco.Media((int)CurrentPage.Image);

    <img src="@m.Url" alt="@m.UrlName" />
}

remarque: vous devez convertir CurrentPage.Image en int à cause du constructeur ambigu Umbraco.Media.

2
Hoàng Nghĩa

Cela a fonctionné pour moi, de la documentation Umbraco 6 Media, ici

var bannerImage = Umbraco.TypedMedia(Model.Content.GetPropertyValue("plainImage"));

<div class="my-banner-wrapper" style="background-image: url(@bannerImage.GetPropertyValue("umbracoFile"));">
    <!-- some irrelevant content -->
</div>
2
user3290948
 <img src="@Umbraco.Media(Convert.ToString(@Umbraco.Field("image"))).umbracoFile" alt="" />
1
Urvish Patel

Je l'ai entré dans la section ci-dessus le doctype dans le modèle ou le maître utilisé.

@{
Layout = null;
var regionalPage = Umbraco.Content(this.CurrentPage.Id);
string manangerPhotoUrl = string.Format("https://assets.yourdomain.com{0}", @Umbraco.Media(regionalPage.managerPhoto).Url);
}

Ensuite, j'ai ajouté la variable contenant la valeur de chaîne à mon attribut source d'image dans le balisage.

<img class="img-responsive" src="@manangerPhotoUrl" />
0
Jason Spence

À l'intérieur du modèle 

umbraco: macro runat = "serveur" language = "cshtml"

img src="@Model.MediaById(Model.photo).umbracoFile" alt=""/

/ umbraco: Macro

---Model.photo = photo est un nom d'alice

0
Rajkumar