0

저는 Custom Html Helper를 작성했으며, 다음과 같은 뷰에서 호출 할 수 있습니다. @ Html.FootNoteNumberedLink. 문제는 뷰 내에 중첩 된 부분 뷰가 상당히 복잡한 데,이 특정 도우미는 다른 부분 뷰를 통해 추가 된 데이터를 추적해야합니다. 즉, 전체 뷰 (부분 뷰 포함)에 대한 모든 각주의 실행 집계를 유지합니다. 문제는 @Html이 모든 부분 뷰로드시 인스턴스화 된 것처럼 보입니다. 내 도우미가 부분 뷰 1에서 각주 1,2,3을 가질 수없고 부분 뷰 2에서 각주 4, 5, 6을 계속할 수 없다는 것을 의미합니다. 대신 HtmlHelper는 모든 부분 뷰에서 새 것이므로 데이터를 추가 할 수 없습니다 .뷰와 그 부분 사이의 HtmlHelper 클래스 공유하기

각주의 내부 동작은 발 노트의 목록을 저장을 ViewData를 사용하는 등 :을 ViewData [ViewDataKey] 목록으로

모든 사람이 MVC는이 일을하거나 내가 뭔가 잘못하고있는 이유를 설명?

언제나 감사합니다.

답변

1

HtmlHelper는 간단한 마크 업 생성기 클래스로 사용하기위한 것입니다. 변화를 추적하기 위해 그것을 사용하는 것은 좋은 생각이 아닙니다.

대신 강력하게 형식화 된 뷰 모델을 만들어 컨트롤러에 채 웁니다. 그러면 뷰 모델을 기본보기로 전달하고 인쇄 할 수 있습니다.

귀하의 의견은 컨트롤러가 전달하는 모든 정보를 그림으로 그려야 만합니다.