2011年7月1日

Display Templates

昨天考 MCTS 7--515 時有考這一題,不會寫所以今天看了一下。
有時侯會我會要特定的型別套用我們要的顯示格式,最常看到的就是 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 也有類似的東西學藝不精,感覺做法比 PartialView 方便很多,可重複使用的可能性也高,果然考試還是有用地!

範例程式:


REFERENCE: http://www.codecapers.com/post/Display-and-Editor-Templates-in-ASPNET-MVC-2.aspx

沒有留言:

張貼留言