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型のオブジェクトを受け入れる部分ビューは適切に機能します。ただし、Model.Memebershipが NULL の場合、次のようなエラーが発生します。

ディクショナリに渡されたモデル アイテムのタイプは「Locum.UI.ViewModels.ViewModelFormPreview」ですが、このディクショナリにはタイプ「Locum.POCO.FormMembership」のモデル アイテムが必要です。

Model.Memebershipが NULL であっても、 FormMembership 型であるため、これは奇妙なエラーです。では、オブジェクトが NULL のときにViewModelFormPreviewを渡そうとしていますというエラーが表示されるのはなぜですか?

誰でもこれを手伝ってもらえますか?

ありがとう。

4

2 に答える 2

2

メッセージにあるように、それはNULLであり、EMPTYではありません。メンバーシップがnullの状態でMembership.MyFielsを使用しようとすると、常にエラーが発生します。

問題を解決するには、クラスを初期化し、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

このエラーを回避するために、新しい空のメンバーシップ クラス インスタンスを作成してパーシャルに渡すことはできますか

于 2012-08-07T09:18:19.840 に答える