有時侯會我會要特定的型別套用我們要的顯示格式,最常看到的就是 DateTime。
<%: DateTime.Now.ToString("yyyy/MM/dd") %>
如果在複雜一點像自訂的 Model 型別,通常會用 PartialView 來套我們要的格式,不過也可以用 Display Templates 自動套用自訂的顯示格式,這樣也能讓其它專案重複使用。
很簡單的4個步驟就能完成:
1. 在 View/Shared 資料夾底下加入 DisplayTemplates 資料夾。
2. 加入與型別名稱相同的 PartialView ,加入時 StrongType 要與自訂的型別相同。
3. 定義要顯示的格式。
4. 在要顯示的View 使用 Html.DisplayFor。
在建立1個新的 MVC 專案後,建一個之後要用來自訂顯示格式的 Address 類別。
在 View/Shared 下加入 DisplayTemplates 資料夾,並加入 PartialView Address.ascx(加入時 StrongType 記得要選 Address)。
自訂顯示的格式。
之後在 Control 填入資料然後把 Index 的頁面 Model 型別改成 Adress,在要顯示的地方加入 <%= Html.DisplayFor(x => Model)%> 當頁面顯示的時侯就會自動去套用所建立的自訂格式了。
執行畫面如下:
底下的範例檔案我加了 Editor Templates 做法類似,只是 DisplayTemplates 資料夾名稱變成了 EditorTemplates,使用方式變成了 <%= Html.EditorFor(x => Model)%> 。
做完之後覺得 Display Templates 蠻像 Dynamic Data Templates,之前並不知道 MVC 也有類似的東西
範例程式:
REFERENCE: http://www.codecapers.com/post/Display-and-Editor-Templates-in-ASPNET-MVC-2.aspx




沒有留言:
張貼留言