ASP.NET MVC 3 RenderPartialが空のModelに入力されたときにディクショナリタイプエラーが発生しました
2318 ワード
あるユーザ情報のViewではPersonViewと呼ばれ、QualificationViewと呼ばれる別のpartial viewが呼び出された.PersonViewのモデルタイプはPerson、QualificationViewのモデルタイプはIEnumerable
Html.RenderPartial("QualificationListControl",Model.qualificationList);
qualificationListがnullの場合、次のエラーが発生します.
'/'アプリケーションのサーバーエラー。
辞書に入力されるモデル・アイテムのタイプは「ConstructionMis.Dll.Entity.Person」ですが、この辞書には「System.Collections.Generic.IEnumerable`1[ConstructionMis.Dll.Entity.PersonQualification]のモデル・アイテムが必要です。
説明:現在のWebリクエストの実行中に、未処理の例外が発生しました.スタックトラッキング情報を確認して、このエラーとコードでエラーが発生したソースの詳細を確認してください.異常詳細:System.InvalidOperationException:辞書に入力されたモデルアイテムのタイプは「ConstructionMis.Dll.Entity.Person」ですが、この辞書には「System.Collections.Generic.IEnumerable`1[ConstructionMis.Dll.Entity.PersonQualification」のモデルアイテムが必要です.ソースエラー:
96: </fieldset>
97: List<ConstructionMis.Dll.Entity.WorkExperience> workList = ViewBag.workList;
98: Html.RenderPartial("QualificationListControl",Model.qualificationList);
99: Html.RenderPartial("WorkExperienceControl", workList);
100:}
2 , 。 , Vew A Partial View B, B model , null, View A model 。 。
, partial view, view, 。
partial view null @Html.RenderPartial , 。
Html.RenderPartial("QualificationListControl", Model.qualificationList, new ViewDataDictionary ());
, ASP.NET MVC bug, bug
http://aspnet.codeplex.com/workitem/8872
http://stackoverflow.com/questions/650393/asp-net-mvc-renderpartial-with-null-model-gets-passed-the-wrong-type