You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC中继承BaseViewModel的初始化变量在嵌套ViewModel中为空如何解决

问题根因

  • EnrollmentViewModel和它内部嵌套的LicenseViewModel是两个完全独立的类实例,虽然都继承了BaseViewModel,但二者的securitydetails属性是属于各自实例的成员,不会自动同步。
  • 你当前仅对EnrollmentViewModel本身调用了UserManager.Assign()方法赋值,没有对嵌套的OfficialLicenseViewModel实例做同样的赋值操作,所以后者的securitydetails一直为空。

解决方案

修改EnrollmentManager中GetVM的逻辑,赋值完父实例后,手动给嵌套的LicenseViewModel也调用一次Assign方法即可:

public EnrollmentViewModel GetVM(.....)
{
    var enrollmentVM = new EnrollmentViewModel();
    // 保留原有给EnrollmentViewModel本身赋值的逻辑
    UserManager.Assign(enrollmentVM);
    // 新增:给嵌套的LicenseViewModel也做属性赋值
    UserManager.Assign(enrollmentVM.LicenseViewModel);
    return enrollmentVM;
}

额外注意事项

你贴出的代码存在多处语法错误,排查问题前请先修正这些问题避免额外干扰:

  • UserManager的Assign方法、EnrollmentViewModel的构造函数的包裹符号错误,应该用大括号{}而不是小括号()
  • EnrollmentManager、EnrollmentController缺少类声明的class关键字

内容的提问来源于stack exchange,提问作者Veronica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:18:01