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 是一个可以为空的日期时间。

有任何想法吗?

谢谢

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 不可为空的 DateTime

于 2013-03-22T12:27:34.410 回答