我有一个类型错误,但我不明白为什么,我有一个视图,viewModel,partialview和一个模型。
视图礼品以giftViewModel为型号。GiftViewModel包含模型LoginModel(登录)的实例。
部分视图LoginPopup以loginmodel为模型。我尝试在礼品视图中渲染partialview登录,将其作为型号传递。
我得到了这个错误:
The model item passed into the dictionary is of type 'GiftViewModel', but this dictionary requires a model item of type 'LoginModel'.
这是代码:
giftViewModel.cs
public class GiftViewModel
{
public LoginModel login { get; set; }
[...]
}
礼物/index.cshtml
@model GiftViewModel
@section content{
@{Html.RenderPartial("LoginPopUp", Model.login);}
}
loginpupup.cshtml
@model LoginModel
[...]
我真的不明白我在哪里错了...
您应该检查行中的 Model.login != null
@{Html.RenderPartial("LoginPopUp", Model.login);}
如果相等,则框架将将模型表格传递给 LoginPopUp
,即GiftViewModel
的类型。这就是为什么您会遇到此错误的原因,因为部分视图需要类型LoginModel
的模型项。
因此,在此之前初始化 login
属性,例如在控制器中,或执行
@{Html.RenderPartial("LoginPopUp", Model.login ?? new LoginModel());}