2013-03-22 58 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

相關問題