2014-10-21 2 views
1

그래서 콘텐츠 형식 선택기를 매크로 매개 변수로 사용하려고합니다. 페이지에 매크로를 추가 할 때 별명 "myType"이있는 내용 유형을 선택합니다.Umbraco 7.1.8 - 콘텐츠 형식 선택기 형식을 매크로 매개 변수로 사용

매크로의 부분보기에서 문서 유형의 별명을 검색하려면 어떻게합니까?

현재 내가 사용하고 있습니다 : 문서 유형의 ID를 제공

var type = Model.MacroParameters["myType"]; 

합니다. ID를 사용하여 문서 유형의 별명을 검색 할 수 있습니까?

하여 사용하는 경우 :

@Umbraco.Content(type) 

그것은 빈 내용 개체를 반환합니다.

나는 콘텐츠 유형 선택기 데이터 형식을 사용하여 문서 유형 별칭을 검색하는 솔루션을 발견

답변

1

:

//get current content type service 
var myContentTypeService = ApplicationContext.Current.Services.ContentTypeService; 

//get ID of selected content type 
int typeID = Convert.ToInt32(Model.MacroParameters["myType"].ToString()); 

//get content type object using ID 
IContentType myContentType = myContentTypeService.GetContentType(typeID); 

//retrieve alias 
String alias = myContentType.Alias; 
-1

귀하의 방법을 사용하여에 원하지 않는 데이터베이스를 명중 컨텐츠 서비스를 사용을 프런트 엔드! 당신의 부분에, 대신 다음을 사용

//get content 
var page = Umbraco.TypedContent(Convert.ToInt32(Model.Macroparameters["myType"])); 
//get Doctype Alias 
var alias = page.DocumentTypeAlias 

는 일반적으로, 당신은 프런트 엔드 디스플레이의 콘텐츠 서비스를 사용하지 말고, 대신 Umbraco 도우미의 TypedContent 방법을 사용한다! 그게 도움이 되길 바래요 :)

+0

이전에이 코드를 사용해 봤지만'page'와'alias' 둘 다에 대해 빈 객체를 반환합니다 - Content Picker 데이터 유형과 함께 사용되면 Content/선택기 데이터 형식입니다. – PTuckley

+0

죄송합니다. 질문을 잘못 이해했습니다. 그렇다면 콘텐츠 서비스를 사용해야합니다. 별칭이 필요한 경우보다 효율적인 방법은 ID 대신 별칭을 저장하는 자체 매크로 매개 변수 유형을 만들어서 콘텐츠 서비스를 사용할 필요를 없애는 것입니다. – Tim