Orchard의 인스턴스에서 사용자 지정 콘텐츠 부분이있는 사용자 지정 콘텐츠 형식이 있습니다. 컨텐트 부분의 "편집기 드라이버"에서 컨테이너 컨텐트 항목이 유효한지 (즉 유효성 검사를 통과하는지) 확인해야합니다.과수원 CMS - 모델이 콘텐츠 항목 드라이버에서 유효한지 결정
Orchard의 작동 방식으로 인해 정상적인 ModelState가 작동하지 않습니다. 콘텐츠 부분이 유효한지 확인할 수 있지만 전체 콘텐츠 항목 (콘텐츠 항목 내에 다른 콘텐츠 부분이 있음)을 알아야합니다. .
라이프 사이클 이벤트 (http://docs.orchardproject.net/Documentation/Understanding-content-handlers)를 사용하여 콘텐츠 파트가 게시/생성되었지만 해당 이벤트 정보를 전달할 방법이 없다는 것을 알고 있습니다.
기본적으로 컨텐트 항목이 유효하고 ViewModel 내에 포함 된 메서드 정보를 전달해야하는 경우 메서드를 실행해야합니다.
이 작업을 수행하는 더 좋은 방법이있을 수 있지만 나는 과수원 프레임 워크에서 방법을 찾기 위해 애 쓰고 있습니다.
샘플 코드 :
//POST
protected override DriverResult Editor(EventPart part, IUpdateModel updater, dynamic shapeHelper)
{
var viewModal = new EventEditViewModel();
if (updater.TryUpdateModel(viewModal, Prefix, null, null))
{
part.Setting = viewModal.Setting;
}
//here's where I need to check if the CONTENT ITEM is valid or not, for example
if (*valid*)
{
DoSomething(viewModal.OtherSetting);
}
return Editor(part, shapeHelper);
}
참고 : 나는 오차드 버전 1.6을 사용하고 있습니다.
수 : 그렇게하기 위해서는
,이 같은 기본 하나 대신 컨트롤러를 사용하는 과수원을 가리 키도록 핸들러에게
OnGetContentItemMetadata
방법을 사용할 필요가 (당신이 이미 당신의 컨트롤러가 가정) 시나리오에 대해 더 자세히 설명해 주시겠습니까? 왜 그럴 필요가 있니? –