2017-02-17 12 views
0

私は現在のドキュメントタイプのメディアピッカーを持っています。それで私は2つのメディアピッカーを取った。複数の画像スライダの場合は最初に、ビデオの場合はもう1つ。UmbracoのメディアピッカーからビデオURLを取得する方法

enter image description here

enter image description here

と内容が今私は与えられたコードで私のコードでこのURLを取得しようとしています:私は成功したイメージリストを取得しています

var imageList = CurrentPage.productsSliderImages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
var video = Umbraco.Media(CurrentPage.productSliderVideo); 

。しかし、私はビデオをヌルにしています。 私のビデオをもう一度イメージに置き換えると、そのビデオは動作し始めます。メディアピッカーを使用しているビデオやその他のファイルに問題はありますか?

ウォッチ:
http://prntscr.com/e9wal1

+0

ピッキングするビデオのファイル拡張子は何ですか?私の答えが役に立たないなら、それは役に立つ手がかりになるかもしれません。あなたはビデオのカスタムメディアタイプを作ったのですか?もしそうなら、アップロードしているビデオをどのようなプロパティエディタで保存していますか? – bowserm

答えて

2

このような問題を解決するには、私は画面に映像メディアピッカーの生の値を印刷しようとしたり、デバッグモードでの検査をお勧めします。私はもっ​​と強く型付けされたIPublishedContentで仕事をしたいので、私はこのようないくつかのコードをデバッグするでしょう:

var videoData = Model.Content.GetPropertyValue<string>("productSliderVideo"); 

通常、あなたが@inherits UmbracoTemplatePageから継承ビューで作業している場合、Model.ContentCurrentPageの両方があなたを与えるだろう現在のページのデータ。ダイナミクスの操作が好きであればCurrentPageで作業できます。より強く型付けされたIPublishedContentモデルで作業する場合はModel.Contentで作業できます。私は強く型付けされたバージョンを好むので、デバッグするのがずっと簡単です。

IDを取得していることを確認したら、バックオフィスで選択したメディアアイテムをサニティチェックとしてチェックします。一致することを確認してください。もしそうなら、私はインデックスインデックスマネージャーでInternalIndexerを再索引付けしようとします。私が理解する限りでは、Umbracoは内部のインデクサをメディアキャッシュとして使用します。このすべてをした後、私は以下を試してみましょう。これはあなたが上でやっていることと同じですが、動的メディアの代わりにTypedMediaを使っています。たぶんそれはもっとあなたに明らかになるでしょう。私は個人的には、型付きのコンテンツと型付きのメディアをデバッグするのがはるかに簡単です。後でダイナミクスに戻すことを決定したとしても、デバッグのためにそれを切り替えることは意味があります。

var video = Umbraco.TypedMedia(videoData); 
+0

申し訳ありません休日のために週末にテストできませんでした。私はあなたのコードをテストし、うまく働いています –

+0

私はこのページのモデルを正確に説明できますか?私のビューではモデルを呼び出さなかったので、 –

+1

@ユビキタス開発者https://our.umbraco.org/forum/developers/razor/42006-CurrentPage-vs-ModelContent – Mark

関連する問題