2011-12-16 7 views
3

私はRazorで書かれたumbracoマクロを持っています。私は2つのメディアピッカープロパティを持つノードを持っています。私は単にマクロがメディアピッカーのプロパティを取得し、イメージをつかんでから作物を作ってから、特定の作物をイメージタグに表示するようにします。私はマクロが正常に動作しているが、私はどのようにマクロにプロパティ名を渡すことができません。基本的には、私が必要とするプロパティ名に応じてマクロを2回コピーして編集するのを防ぐためです。Umbracoプロパティをマクロに直接渡すには

私のマクロコードは以下の通りです。私がやりたいすべてはあなたがパラメータimgIdであなたのマクロを定義し、このようにそれを呼び出す場合は、@のModel.imageIdに

@{ 
var image = Model.MediaById(@Model.imageId); 

if (image != null) 
{  
    var crops = image.imageCropper.crops; 

    if (crops != null || crops.GetType().ToString() != "System.String") 
    { 
     <img src="@crops.Find("@name", "home-promo").url" width="217" height="163" /> 
    } // if 
} 

}

答えて

2

をパラメータである:

<umbraco:Macro ID="Macro1" Alias="CropMacro" imgId="imageId" runat="server"></umbraco:Macro> 

あなたが実際にしていますフィールド "imageId"の名前を渡します。だけでなく、ヘルパーと同じことを行う方法については、ほとんど同じ質問&答えを

var image = Model.MediaById(Model.getProperty(Parameter.imgId).Value) 

、ここも参照:マクロでは、あなたがして使用することによりモデルのIMAGEIDプロパティの値を取得することがあり をUmbraco razor template - Get Formatted Date From Field specified in parameter

関連する問題