2011-12-11 2 views
1

ARG! 나는 지난 2 일 동안 18 시간 동안 내 머리를 때리고, 4 인치의 거친 진흙탕에서 뛰고 싶다 ... 나는 sooooo를 닫고 두려움 때문에 월요일에 NON 결과로 걷지 않으면 안된다. 내 모든 노동 ...과수원 CMS : DriverResult 디스플레이에 @ 모델 및 지원 바인딩을 오버로드하려면 어떻게합니까?

큰 그림 :

나는 사용자가 우편 번호 고려할 필요가 위젯을 가지고 있고,이에 따라 그 지역 내의 이벤트의 목록을 제공합니다.

GeoIp 조회가 꺼져 있거나 사용자가 도달 할 수있는 곳을 찾거나 ZipCode를 선택 및 "다시 게시"로 변경하려는 경우 모듈을 다시 그리는 데 관심이 있습니다.

위젯을 다른 DB에서 찾고 위젯으로 잘 렌더링했습니다.

나는이 그것을 나는 ...... 나는 내가 원하는 것은입니다 "생각"원하는대로 작업하는 모든

protected override DriverResult Display(
     SeminarPart part, string displayType, dynamic shapeHelper) { 

내가 .cshtml

@model CustomPart 

에 결합 할 수 뭔가하기 하지만 문제는 내가 얻을 내가 뭘 ->

사전에 전달 모델 항목 유형 이다 'IShapeProxyabb0e4251c0b4c71bfe70f2e c47bfca4 '이지만이 사전 에는'Blah.Blah.MoreBlah.CustomPart '유형의 모델 항목이 필요합니다.

나는이 행복을 모두 얻을 수 있다면, 내가

@Html.TextBoxFor(m=>m.SelectedZipCode) 

처럼 뭔가를 할 수있을 것 "THINK"그리고 궁극적으로 그 모델이있는 List<CustomData>을 변경, 그 결과 세트를 새로 고침 것 모델을 만들고 목록을 다시 그리는 중 ... ???


DANGDED 편집기 부분은 ... 누구 아이디어를 GET과 POST DriverResult 편집기 노출과 내가 여기 할 수있는 기대했던 것을 할 것 같다?

PPPPPPLLLLLLEEEEEASSE 로저 .... 사전에 많은 감사, - 제임스 등 10 긱 닷컴 ...

답변

0

@model CustomPart@model dynamic로 교체 점. 뷰로 전달 된 모델은 오차드에 의해 일부 작업을 수행 할 수 있도록 프록시되었으며 프록시 된 객체는 dynamic이고 인스턴스는 CustomPart이 아닙니다.

이 내용은 Display(...) 방법을 통해 표시되는보기에만 적용됩니다. Editor(CustomPart part, dynamic shapeHelper) 방법에 사용 된보기에서는 @model CustomPart을 사용해야합니다.

+0

하지만 실제로 정적 모델이 필요합니다. 다른 포럼의 Piedone 덕분에 다음과 같은 작업을 통해 원하는 모델에 실제로 바인딩 할 수있었습니다. 보호 된 재정의 DriverResult 표시 (MYCustomPart 파트, 문자열 displayType, 동적 shapeHelper) {ContentShape ("Parts_Seminar",() => shapeHelper.DisplayTemplate (TemplateName : "Parts/MYCustom", 모델 : MYCustomService).GetMYCustomData (부분), 접두사 : 접두어)); – 10GeekJames

+0

당신이 해결책을 찾았다면 다행) 둘 중 어느 것이 든 효과가있을 것입니다. 피에 돈의 접근 방식은 더 명백합니다. 관심이 없으면 CustomPart가 필요한 이유는 무엇입니까 (프록시가 아닌)? DisplayTemplate()을 직접 사용한 적이 한번도 없었습니다. 뷰에서 (즉, @ {var part = (CustomPart) Model;} 또는 유사한 것과 같이) 명시 적으로 형식화 된 참조가 필요할 것입니다. – mdm