2012-08-13 4 views
0

이 모듈 (Extended Registration)을 처리하고 있습니다. 이 모듈은 등록시 사용자 정의 사용자 필드를 표시하는 간단한 방법을 제공합니다. AccountController 양식 사용자를 무시하고 등록 템플릿과수원에서 DriverResult Editor가 사용자 정의 템플릿을 렌더링합니다.

AccountController

 var shape = _orchardServices.New.Register(); 

     var user = _orchardServices.ContentManager.New("User"); 
     if (user != null) { 
      shape.UserProfile= _contentManager.BuildEditor(user); 
     } 

     return new ShapeResult(this, shape); 

Register.cshtml

</div> 
    @if (Model.OERegister != null) { 
     <fieldset> 
      @Display(Model.UserProfile) 
     </fieldset> 
    } 
    <div> 

여기 모양입니다 편집기 템플릿 (EditorTemplate/부품/템플릿 편집기 템플릿을로드)

잘 작동하지만 등록 양식에서 일부 필드를 숨길 필요가 있습니다.

나는 여기에서 길을 잃어 버렸고, 나는 대부분의 오키드 방식으로 그것을하고 싶다.

미리 감사드립니다.

답변

0

여기까지의 질문은 일반적으로 양식의 일부 필드를 숨기는 방법입니다.

형태의 코드의 저자가 설계 방법에 또는 당신이 개발자 여부에 따라 여러 가지 방법이 있습니다

  • 별도의 모양 형태의 부품을 가지고, 그리고 결합 자신의 공장을 반환 드라이버 결과. 즉, 파트 편집기를위한 셰이프를 제공하여 폼의 일부를 구성하는 드라이버가 여러 셰이프를 등록한다는 것을 의미합니다 (BodyPartDriver.Display()와 유사합니다 : 세 개의 별도 셰이프 등록을 반환합니다). 이제는 배치로 개별적으로 제어 할 수 있으므로 숨길 수도 있습니다.
  • 양식 작성 방법에 대한 정밀한 제어 권한이없는 경우 숨기려는 입력란이 포함 된 모양 템플릿을 무시할 수 있습니다. 그런 다음 재정의 할 때 양식의 모양을 자유롭게 사용자 정의 할 수 있습니다. 첫 번째 솔루션과 달리 사용자가 숨겨진 필드의 데이터를 서버에 게시하여 저장하는 것을 자동으로 방지하지는 않습니다.

BTW ContentManager.New()가 null을 반환 할 수 없다고 생각합니다. 콘텐츠 유형이 정적으로 정의되지 않더라도 (즉, 마이그레이션 또는 ContentDefinitionManager를 통해 생성 된 경우) 콘텐츠 항목이 반환됩니다.

+0

감사합니다. 당신의 대답은 나에게 약간의 지침을 제공합니다. – mberacochea

+0

예, 답변 Piedone 주셔서 감사합니다. – mberacochea

관련 문제