1

私は単純な部分ビューを開発しようとしています:

@model Nullable<DateTime>
@if (Model == null)
{
    <span>Active</span>
}
else
{
    <span>Resigned on @Model.GetValueOrDefault().ToShortDateString()</span>                                    
}

別のビューから使用します。

@Html.Partial("ViewTemplates/UserStatus",user.ResignDate)

.でない限り、ビューは完全に機能しNullable<T>ます。

次のエラーが表示されます。

ディクショナリに渡されたモデル項目は、'System.Collections.Generic.List 1[Models.UserModel]', but this dictionary requires a model item of type 'System.Nullable1[System.DateTime]' 型です。

もちろん、user.ResignDate は null 許容の日時です。

何か案は?

ありがとう

4

2 に答える 2

3

Partial メソッド (user.ResignDate) に渡されたモデル パラメーターが null の場合、asp.net-mvc は呼び出し元ビューのモデルを Partial ビューに渡し、エラーが発生します。

UserStatus を DisplayTemplates フォルダーに配置する規則に従っている場合は、Partial 呼び出しをDisplayFor メソッドに置き換えることをお勧めします。

@Html.DisplayFor(model => model.user.ResignDate, "UserStatus")
于 2013-03-22T11:19:14.893 に答える
0

user.ResignDate のデータ型を確認してください。DateTime である必要があります。

于 2013-03-22T12:27:34.410 に答える