2010-09-23 166 views
0

例子是假的。MVC:在哪個組件中詳細說明了數據展示的細節?

ASP.NET MVC:我有一個呈現學生信息的視圖。學生信息由名字,姓氏和(可選)年齡組成(聲明爲int?)。

學生信息呈現類似,如果年齡沒有規定我要顯示「未指定」:

<span><%= Model.Student.FirstName %></span> 
<span><%= Model.Student.LastName %></span> 
<span><%= Model.Student.Age.HasValue ? Model.Student.Age.ToString() : "not specified" %></span> 

我上面的文字問題是,它使視圖過於複雜(太複雜,我的網站設計師能夠修改它)。

問題:我可以在哪裏提出這個決定?

  1. 屬性Student模型是一個業務對象,並且不得包含渲染細節。
  2. 我應該在模型中添加一個方法:Model.GetAgeAsText(Student student)?但是,最後我在模型上發現了大量鬆散懸掛的方法,這些方法都在被分組成某些東西......但是什麼?
  3. 我可以創建一個自定義控件StudentAgeShower,這似乎是最正確的OO解決方案,但似乎有點矯枉過正。

有什麼建議嗎?

回答

2

創建預覽的所有決策的學生的視圖模型。

+0

我喜歡,我喜歡。然後將'StudentViewModel'暴露爲'Model'的屬性?什麼時候創建了「StudentViewModel」?它住在哪裏? – 2010-09-23 03:02:50

+1

是的,但我仍然稱它爲「學生」,視圖模型是在它使用前的任何地方創建的......通常如果我像這樣裝飾我去看(新的ViewModel(realModel))類的東西(可能是更多的參與)有像http://automapper.codeplex.com/和類似的東西來幫助這些事情中的一些,取決於你需要多久執行一次,以及你的對象有多複雜 – 2010-09-23 03:07:22

+0

你處理日期格式的方式相同嗎? – 2010-09-23 03:12:02

相關問題