2016-12-01 1 views
1

나는 이것에 대해 잠시 생각해 왔습니다. ContentArea에서 삭제 된 페이지의 속성에 액세스해야하는 블록이 있다고 가정 해 보겠습니다. 나는 여러 페이지를 가지고 있는데,이 블록과 호환되어야하는 페이지의 모든 사람들이 인터페이스 (IHaveProperties라고 부름)에서 상속 받아이 인터페이스에 "currentPage"를 캐스팅 할 수 있도록 해당 속성을 구현해야한다. 내부의 속성에 액세스 할 수 있습니다.EpiServer의 특정 인터페이스에서 상속 된 ContentArea에서만 사용할 블록 제한

내 유일한 문제는 사용자가 편집 모드에서이 블록을 블록이 속한 contentarea에 떨어 뜨리는 경향이 있다는 것입니다. 이것은 나의 주요 관심사입니다. 페이지의 ContentArea가 IHaveProperties 인터페이스의 구현 인 경우 인터페이스의 구현 인 ContentArea에만 놓을 수 있도록 블록을 제한 할 수 있습니까?

또는 다른 방법으로이 BlockType의 인터페이스에 contentreference가 있고 contentarea없이 렌더링 되었습니까?

나는 ContentArea 솔루션을 기대했다

...

답변

2

예,이 같은 ContentArea 속성에 속성을 추가하여이 작업을 수행 할 수 있습니다 : 이것에 대해 좋은 게시물에서이

[AllowedTypes(typeof(IHaveProperties))] 
public virtual ContentArea SomeContentArea { get; set; } 

여기 EPiServer :

http://world.episerver.com/blogs/Ben-McKernan/Dates/2015/2/the-new-and-improved-allowed-types/

+0

이 내용을 알고 있습니다. 이 문제는 사용자가이 블록을 보유하지 않을 ContentArea로 블록을 드래그하려고 할 때 남아 있습니다. 블록은 currentPage를 null 체크를하는 인터페이스에 캐스팅 할 때 조건을 가지며 유효하지 않은 캐스팅 (인터페이스를 구현하지 않는 페이지)으로 인해 발생하는 예외를 catch합니다. –

+2

나는 이것이 무슨 뜻인지 잘 모르겠습니다. 코드 예제를 보여주는주의? – Andreas

관련 문제