星期二, 6月 29, 2010

ViewModel 也可以是很複雜的型別阿!!

最近在實務方面,有遇到較複雜的需求,在頁面上需要有重複的子母表單,我的想法是想用 MVC 的 ViewModel 的方式丟一個 Collection 到頁面,這個 ViewModel 記載著子母表單的彼此關係,然後在頁面填完表單,可以用 Post 的方式由頁面再傳回 List<ViewModel>,讓我整個過程都用強型別來處理,所以接下來我們就把這個想法實現吧..

我們先建立子母表單的 class,然後用 TestService 這來模擬資料來源..

image

有了個些測試資料,我們開始準備要顯示的頁面,首先我們先新增兩個 UserControl,這兩個 UserControl 都要放在 EditorTemplates 裡喔,EditoirTemplates 這個命名不能亂改阿阿阿..

image

ViewModel.ascx
 
image
ViewModelChild.ascx
 
image
接下來我們要新增View


image


EditTemplate.aspx

image

接下來我們只要加入controller就大功告成了..


image


TestController.cs

image
呼呼,終於把要寫的要加的都用好了,我們來看一下跑出來的結果吧!!


Get 的方式跑出來,沒問題,優..


image 
重點來啦,如果 Post 的方式也可以接回 ViewModel,那就完美啦..


image

讚..都有抓到ㄟ,出運啦,mvc可以讓我用很簡單的方式用實質型別傳遞來處理資料,這對我們在寫程式也會非常便利,善用這種方法來處理資料,就可以不用在處理那些接值塞值得工作了..^^||...


參考:

沒有留言: