2013-03-22 60 views
1

我想开发一个简单的局部视图:Asp.Net MVC可空<T>模型局部视图

@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>

我收到的错误:

当然

The model item passed into the dictionary is of type 'System.Collections.Generic.List 1[Models.UserModel]', but this dictionary requires a model item of type 'System.Nullable 1[System.DateTime]'.

中user.ResignDate是一个可空的日期时间。

任何想法?

感谢

回答

3

如果传递给偏法(user.ResignDate)模型参数为空,则asp.net-MVC通过来电显示视图的偏视图模型,你会得到错误。

如果你跟着放置UserStatus到DisplayTemplates文件夹公约答,我会reccommeded你DisplayFor method

@Html.DisplayFor(model => model.user.ResignDate, "UserStatus") 
+0

感谢archil,但我没有在调用页面模型(我在Model.Users和呈现用户属性迭代)。有任何想法吗? – 2013-03-22 11:44:47

+0

我的代码只是一个猜测:)。你可以做 '@ Html.DisplayFor(model => user.ResignDate,“UserStatus”)',但正如我所提到的,只有当'UserStatus'视图被放置在'DisplayTemplates'文件夹中 – archil 2013-03-22 11:53:13

+0

非常感谢@archil! – 2013-03-22 11:57:00

0

,以取代部分呼叫请检查user.ResignDate 的数据类型应该是日期时间不能为空的DateTime

相关问题