아키텍처의 이상을 명확히하고, 어떻게 그것을 해결 끝났다.
이
- 사업은 VB의 XML 어셈블리가 다루는 비즈니스 오브젝트를 직렬화 처리
- VB XML 드/직렬화 라이브러리
- ASP.NET MVC 프로젝트
개체 : 나는 다음과 같은 프로젝트/어셈블리를 비즈니스 (# 1) 모델 만. 그래서 난 것 출력이 같은 XElement를 뭔가 :
<invoice>
<invoiceId>1234</invoiceId>
<customer>Hudsucker Industries</customer>
<otherBusinessData>etc, etc</otherBusinessData>
</invoice>
문제는 내가있는 jqGrid를 사용하고 내가 같은 것을 필요 그래서 특정 작업에 대한 각 송장에 요소를 추가 할 필요가 발생
:
<invoice>
<actionHtml><![CDATA[ ...some HTML such as links... ]]></actionHtml>
<invoiceId>1234</invoiceId>
<customer>Hudsucker Industries</customer>
<otherBusinessData>etc, etc</otherBusinessData>
</invoice>
을 나는 그것을 작동시키지 만 컨트롤러의 모든 action HTML을 생성해야하는데 분명히 좋은 분리가 아니며 모든 HtmlHelper 메소드 등을 잃어 버렸다. 그래서 내가 '올바른'방법을 해결 결국 방법은 다음과 같습니다
- 는 웹폼보기를 (내 페이지에 대한 brail 뷰를 사용)를 사용하여 [그래서 나는 XML로 설정하는 ContentType이 페이지 속성을 사용할 수 있습니다].
- 원시 비즈니스 오브젝트의 컬렉션을 모델 데이터로 전달하십시오.
- 루프 모델 수집, 나는 단순히 내 VB의 XML 라이브러리를 호출하고, 할 수있는 출력하려면
- 실제 비즈니스 요소를 (따라서 내 Html 헬퍼 방법을 얻는 등) 뷰에있는 각 송장에 대한 actonHtml 요소를 구축 :
invoice.ToXml().Elements().ToString()
및 나는 좋다.
더 많은 정보를 재사용 할 수 있도록 jqGrid 마스터 페이지를 만들었습니다.이 페이지는 모든 레코드 개수와 내용 영역을 포함하고 있으므로 실제 페이지에 정보를 전달할 수 있으며 요소 데이터를 출력하는 것에 대해 걱정할 필요가 없습니다.