2014-04-10 3 views
5

부분 뷰에 올바른 데이터를 전달하는 데 문제가 있습니다. 왜 실패하고 있는지 잘 모르겠습니다. 부분 뷰에 모델 특성 전달

내가 모델

public class SubModel { 
    public string Wobble {get; set;} 
} 

public class MyModel { 
    public SubModel Wibble {get; set;} 
} 

및 전망

MyView.cshtml 

@model MyModel 

@Html.Partial("SomePartial", Model.Wibble) 

SomePartial.cshtml 

@model SubModel 

<h1>Victory!</h1> 

을 말해봐 내가을 변경하면이 The model item passed into the dictionary is of type 'MyModel', but this dictionary requires a model item of type 'MySubModel'

실패to

@model MyModel 

@Html.Partial("SomePartial", Model.Wibble, new ViewDataDictionary<MySubModel>(Model.Wibble)) 

예상대로 작동합니다.

ViewDataDictionary을 명시 적으로 전달해야하는 이유는 무엇입니까? 왜 그냥 모델을 전달할 수 없습니까?

참고 : 저는 제가 가야 할 일을하는 라이브러리를 사용하고 있습니까? 많은 시간. 위의 동작이 예상되지 않으면이 라이브러리 오류 일 수 있습니다.

답변

0

MyModel.Wibble 대신 Model.Wibble으로 서브 모델을 전달하려고 했습니까? 연관된 모델은 모델 이름이 아닌 Model이있는 뷰에서 액세스 할 수 있습니다.

+0

오타되었습니다. 질문을 수정했습니다. – Martijn

8

부분 뷰로 전달한 모델이 null 일 때 발생합니다. 부분 뷰에 null를 건네주지 말아주세요. 그렇지 않으면 그 타입에 대해 혼란을 겪을 것입니다.

관련 문제