web-dev-qa-db-ja.com

Umbraco 7のメディアライブラリから画像を表示

これは恥ずかしいほど簡単なはずですが、動作させることはできません。UmbracoMedia Library(Umbraco 7.1.1)にアップロードされた画像を部分表示テンプレート内に表示したいだけです。コードは

@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>
}

bannerBackgroundImageは、ページのカスタムプロパティです。ただし、これが表示されると、@imgUrl#に置き換えられます。

私が試した他の選択肢は、 複数のメディアピッカー画像メディアピッカー画像の表示方法Razorでメディアから画像を取得 、および メディアピッカーからの画像を表示 、ほんの数例を挙げます。

誰かがルーキーの質問だと思っていることを手伝ってくれたら本当にありがたいです!

23
Informagic

私はこの方法を簡単できれいに見つけました:

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

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

他の人に役立つことを願っています

35
Jesus Mogollon

イエス・モゴロン、ありがとう

私はそれを崩壊させました:

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

ファイルを必須に設定したので、できればifステートメントの部分は必要ないでしょう。

14
Craig Poole

簡単だと思っていたものに予想外に苦労したので、これはうまくいきました。

@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"  />
      }
   }
}

他の投稿の多くはうまくいきませんでしたが、APIは少し変わったと思います。 Umbraco 7.6.1を使用しています。 nullチェックが必要かどうかはわかりませんが、確かに害はありません。

4
NickBeaugié

これを試して

@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" />
}

注:Umbraco.Mediaのあいまいなコンストラクターのため、CurrentPage.Imageをintとしてキャストする必要があります

2
Hoàng Nghĩa

これは、Umbraco 6 Media docsの here でうまくいきました。

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

これを、使用するテンプレートまたはマスターのDoctypeの上のセクションに入力しました。

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

次に、文字列値を保持する変数をマークアップの画像ソース属性に追加しました。

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

テンプレート内

umbraco:Macro runat = "server" language = "cshtml"

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

/ umbraco:マクロ

---Model.photo = photoはアリス名です

0
Rajkumar