2014-10-21 3 views
0

내가 아키 속성 편집기를 사용하여 foreach는 사용하여 첫 번째 필드 셋을 잡기 위해 노력하고있어에서 첫 번째 필드 셋을 가져 오기 :Umbraco & 아키 : 부동산

foreach (var fieldset in Umbraco.Content(5369).GetPropertyValue<Archetype.Models.ArchetypeModel>("myProperty")) 
{ 
    var icon = Umbraco.TypedMedia(fieldset .GetValue("icon")); 
    <img src="@icon.Url" /> 
    <span>@fieldset.GetValue("iconTitle")</span> 
} 

FIELDSET이 유형입니다 {Archetype.Models.ArchetypeFieldsetModel} . 첫 번째 필드 집합 만 가져 오는 방법은 무엇입니까? 시도

편집 :

var fieldset = Umbraco.Content(5369).GetPropertyValue<Archetype.Models.ArchetypeModel>("hotelFacilitesIcons").Fieldsets; 

이 나에게주는 시도 Archetype.Models.ArchetypeModel.Fieldsets' is inaccessible due to its protection level

는 : 두 번째 줄에서

+1

아직 Archetype 패키지에 대한 경험이별로 없지만 데모 용으로 만 사용하지 않는 한 친숙한 조언으로 내 첫 번째 부분은 콘텐츠 노드 ID를 코드에 하드 와이어하지 않습니다. 이식성이 있거나 미래의 증거가 아니며 노드 ID를 변경해야하는 경우에는 매우 어려울 수 있습니다. 콘텐츠 트리를 탐색하여 필요한 노드를 얻거나 적어도 매개 변수로 전달하는 매우 유연한 방법이 있습니다. – ProNotion

답변

2

나는있을 것이다을 'Archetype.Models.ArchetypeModel' does not contain a definition for 'GetPropertyValue' :

var fieldset = Umbraco.Content(5369).GetPropertyValue<Archetype.Models.ArchetypeModel>("myPropertyAlias"); 
var facility = fieldset.GetPropertyValue<List<Archetype.Models.ArchetypeFieldsetModel>>("myFieldSetAlias"); 

이 나를 준다 찌르다 아마도 당신을 올바른 방향으로 향하게하려고 노력했을 것입니다. 내가 참여한 이전 프로젝트를 보면 Archetype.Models.ArchetypeFieldsetModel 유형이 있으므로 콘텐츠 속성이 대신 Archetype.Models.ArchetypeFieldsetModel의 컬렉션을 반환 할 수 있습니까?

예.

var fieldset = Umbraco.Content(5369).GetPropertyValue<List<Archetype.Models.ArchetypeFieldsetModel>>("myProperty").FirstOrDefault(); 
var icon = Umbraco.TypedMedia(fieldset .GetValue("icon")); 

<img src="@icon.Url" /> 
<span>@fieldset.GetValue("iconTitle")</span> 
+0

네, 맞습니다 :'당신의 content 속성은 (Archetype.Models.ArchetypeModel'과 같은) 프로퍼티를 순회함으로써 Archetype.Models.ArchetypeFieldsetModel' (이것은'fieldset' 변수입니다)의 콜렉션을 반환 할 수 있습니다. 내 예. – alex

+0

속성 (ArchetypeModel)에는 각각 2 개의 필드가있는 여러 개의 fiedlsets (ArchetypeFieldsetModel)이 들어 있으며 첫 번째 필드 집합 만 그 값으로 채워야합니다. – alex

+0

예제가 작동하고 모든 필드 집합을 반환합니다. – alex

1

나는 일종의 내 경우에는 같은 일을하고 싶었 수행했는지 최초의 원형 내가 주변에 있었는지는 원형과 VAR을 만들어이었다, 그래서 첫 번째 값이 모든 다른 사람을 얻기 전에 설정 가지고있다 (당신에게 하나 이상의리스트를 줄 것입니다) 그리고 나서 첫 번째 것을 얻고 그 값을 아래와 같이 확인하십시오;

var contentSectionArchtype = Model.Content.GetPropertyValue<ArchetypeModel>("myArchetypeAlias"); 
     var firstSection = contentSectionArchtype.First(); 

후 첫 번째 섹션은 그때 그들 모두를 통해 반복하기 전에 첫 번째 값을 확인 할 첫 번째 원형, 도움이 희망은 항상 있었다.