gpt4 book ai didi

c# - RenderPartial,模型作为参数

转载 作者:行者123 更新时间:2023-11-30 17:01:16 27 4
gpt4 key购买 nike

我收到一个类型错误,但我不明白为什么,我有一个 View、一个 ViewModel、一个 PartialView 和一个 Model。

View 礼物以 giftViewModel 作为模型。giftViewModel 包含模型 LoginModel(登录)的实例。

partialView LoginPopUp 以 LoginModel 作为模型。我尝试在礼物 View 中呈现 partialView LoginPopUp,将其作为模型传递给登录。

我得到这个错误:

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);}

如果相等,框架会将模型从父 View 传递给 LoginPopUp,这是 GiftViewModel 的类型。这就是您收到此错误的原因,因为分部 View 需要 LoginModel 类型的模型项。

因此,要么在此之前初始化 login 属性,比如在 Controller 中,要么做类似的事情

@{Html.RenderPartial("LoginPopUp", Model.login ?? new LoginModel());}

关于c# - RenderPartial,模型作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241227/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com