0

我正在开发一个 ASP.Net MVC 3 Web 应用程序。我有一个视图模型

public class ViewModelFormPreview
{
    public FormPersonal PersonDetails { get; set; }
    public IList<FormEmployment> Employment { get; set; }
    public FormMembership Membership { get; set; }
}

还有一个接受这个 ViewModel 的 Razor View

@model Locum.UI.ViewModels.ViewModelFormPreview

<h1 class="sepH_b">Application Preview</h1>

  @Html.Partial("FormPreviewApplication/PersonalDetails", Model.PersonDetails)

  @Html.Partial("FormPreviewApplication/Employment", Model.Employment)

  @Html.Partial("FormPreviewApplication/MembershipDetails", Model.Membership)   

视图的最后一部分是我的问题发生的地方。

如果Model.Memebership != null则接受FormMembership类型的 Object 的 Partial View工作得很好。但是,如果Model.Memebership为 NULL,我会收到如下错误

传入字典的模型项的类型为“Locum.UI.ViewModels.ViewModelFormPreview”,但此字典需要类型为“Locum.POCO.FormMembership”的模型项

这是一个奇怪的错误,因为即使Model.Memebership为 NULL,它仍然是FormMembership类型。那么,为什么当 Object 为 NULL 时错误指出我试图传入ViewModelFormPreview ?

有人能帮忙吗?

谢谢。

4

2 回答 2

2

正如消息所说,它是 NULL 而不是 EMPTY。如果您尝试使用 Membership.MyFiels,并且成员资格为 null,您总是会收到错误消息。

要解决您的问题,只需初始化您的类,在 NULL 的情况下使用默认值,或使用 IF 检查它是否为 NULL

像这样的东西。

@if (Model,Membership!=null) {
  @Html.Partial("FormPreviewApplication/MembershipDetails", Model.Membership) 
}
else
{
  @Html.Partial("FormPreviewApplication/MembershipDetails", new FormMembership())     
}
于 2012-08-07T09:31:49.450 回答
1

您能否创建一个新的空 Membership 类实例并传递给 partial 以避免此错误

于 2012-08-07T09:18:19.840 回答