2012-11-09 6 views
5

umbracoのデフォルトデータ型 "関連リンク"の使用に問題があります。私の問題は、プロパティの子/オプションを繰り返したいと思うことです。私はxmlとxsltを使用している例を見てきましたが、私はUser Controlの中に純粋なC#を使用する可能性があるのだろうかと思っています。C#を使用して "関連リンク"を反復する方法

このような何か(ただし、ワーキング・バリアント)

Node node = new Node(Node.getCurrentNodeId()); 
var linklist = node.GetProperty("link"); 
if (node.GetProperty("link") != null) 
{ 
    foreach (var item in linklist) 
    { 
     //get each item here 
    } 
} 

ありがとう!

(私も質問hereを掲載しました)あなたはXMLシリアル化/デシリアライズの

答えて

0

オクラホマので、ここで私はそれを動作させるためにやったことです。私はホルヘの答えを使用しましたが、それを少し、少し変更しました。 umbraco.configに見ての助けによってこれは私が私が私がユーザーコントロールにデレクのasnwerの少しを使用していたと思う

@using umbraco.MacroEngines 
@using umbraco.NodeFactory; 
@{ 
var root = Model; 
var links = root.link; 
if (links == null) 
{ 
    return; 
} 
foreach(var item in links) 
{ 
    DynamicNode linkNode = Model.NodeById(@item.link); 
    Response.Redirect(@linkNode.Url); 
    break; 
} 
} 

をしたかです。これにより、私はいつものようにプロパティを選択でき、使用されたXmlTextReaderを使用して、選択したプロパティのXML部分を読み取ることができたことを意味します。あなたのハープに感謝します!

8

私はあなたがこの(レイザー)のような何かを行うことができるはずだと思う

@using umbraco.MacroEngines 
@inherits DynamicNodeContext 
@{ 
    var root = Model.AncestorOrSelf(); 
    var links = root.FooterLinks.link; 
    <ul class="nav nav-pills"> 
    <li><span>@Dictionary.RelatedLinks</span></li> 
    @foreach (var item in links) 
    { 
     var url = item.type == "internal" ? Library.NodeById(item.link).Url : item.link; 
     var rel = item.type == "external" ? " rel=\"external\"" : string.Empty; 
     var title = item.title; 
     <li><a href="@url"@Html.Raw(rel)>@title</a></li> 
    } 
    </ul> 
} 
+0

ありがとうございました。私はこのmondayを試してみる:-) – Andreas

関連する問題