2012-02-16 3 views
17

익명 형식이 내부 접근 자로 정의되어 있기 때문에 익명으로 형식이 지정된 개체를 컨트롤러에서보기로 전달할 수 없다는 것과 관련된 여러 가지 다른 질문이 있음을 알고 있습니다 (herehere). . 보기 및 컨트롤러 코드는보기에서 익명 개체를 부분보기로 전달

객체와 내가 할 수있는 괜찮습니다 'foo는'

에 대한 정의가 포함되어 있지 않습니다 ... 그것은이 오류가 발생합니다 사용하기 때문에 다른 어셈블리로 컴파일됩니다 처음에는 성가시다. 저를 달래기위한 제안 된 해결 방법이 충분합니다.

그러나 익명 형식을보기에서 부분보기로 전달할 수 있다고 생각했는데, 두보기 모두 동일한 어셈블리에서 컴파일되기 때문입니다.

면도기보기 코드 ...

@Html.Partial("Partial1", new { foo = "Something", bar = "Something else" }) 

와 "Partial1"

@model dynamic 

<h1>@Model.foo</h1> 
<span>@Model.bar</span> 

이상한 것은이에 대한 부분보기 코드, 이것은에 개발의 시작 부분에서 일하고 있었다 새로운 MVC 프로젝트를 만들었지 만 더 많은 뷰를 추가함에 따라 작업이 중단되고 위에서 언급 한 것과 같은 오류가 발생합니다.

마치보기와 부분 뷰가 더 이상 같은 어셈블리로 컴파일되지 않는 임계 값에 도달 한 것처럼 보입니다. 그러나 나는 단지 짐작하고있다.

누구든지이 문제에 대해 궁금해 할 수 있습니다.

+0

이 문제가 발생했습니다. 역학은 부분적으로 작동하고 있었고 갑자기 멈추었습니다. –

+0

나는 그 이유를 결코 알지 못했다. 동적 유형 사용을 중단해야했습니다. 그와 같은 간단한 해결 방법이 있었기 때문에 더 이상 조사 할 시간이 없다는 것을 정당화 할 수 없었습니다. –

+0

나는 똑같은 문제를 겪고 있습니다! 아무도 아직 설명을 찾지 못했습니까? –

답변

2

왜이 기능이 작동하고 멈추는 지 설명 할 수 없었기 때문에 이름이 지정된 유형 정의를 사용해야했습니다. 세상 끝은 아니지만 실망 스럽습니다. 이런 종류의 것은 동적 유형을 사용하는 데 완벽하게 적합합니다.

+1

을 통해 그것을 참조 할 수 있습니다. 그것은 정확하게 제 생각이었습니다. 너무주의를 산만하게했고, 제 일을 정당화하지 못했습니다. 대안 (즉, 강하게 타이핑) –

11

작동이 중지 된 이유를 모르지만 여기가 해결 방법입니다.

사용 @ViewData.Eval("foo") 대신 @Model.foo

하고 @model 역동적 인 라인을 제거합니다. 그럴 필요가 없습니다. 자세한 내용은

+2

좋은.이 비참한 주제에 대해 많이 읽었습니다. 확장 프로그램 및 모든 종류의 작성자 이것은 진정한 쉬운 해결책입니다. – Justin

관련 문제