2010-09-08 170 views
14

我正在寫一個有很多views/partialviews的asp.net mvc2項目。閱讀好的MVC實踐,我一直鼓勵創建ViewModels。它非常好,並且很有意義,但我最近注意到,我不能再輕易地記住什麼模型適用於哪種視圖。我希望ViewModels有一個很好的命名約定,可以處理大型項目。什麼是最好的ViewModel命名約定?

我的問題是可以改善這種情況嗎?

+1

我已經寫了一些關於[ViewModel命名約定](http://www.appetere.com/Blogs/SteveM/April-2012/MVC-Framework-ViewModel-naming-conventions)的更詳細的建議博客文章,這可能是有用的。 – Appetere 2012-04-25 10:28:55

回答

18

我喜歡保持簡單,舉例來說,如果你有一個對象命名的文件夾:

查看= 「FolderView.xaml」

視圖模型= 「FolderViewModel.cs」

2

使簡單:

ModelName = ViewName + "Model"; 

如果你有模型層次,你有時需要從視圖局部視圖傳遞模型。在這種情況下,上述規則可以放棄。

0

我已經開始更進一步,並指定是否使用ViewModel通過EditorFor通過以Form結束名稱來生成Form。幫助保持表格與簡單的顯示模型輕鬆識別。

1

如果您將視圖模型保留在與您的視圖相同的程序集中,那麼除了用於視圖模型類的{View Name} ViewModel之類的簡單命名方案之外,我還曾使用一種技巧來幫助組織視圖和視圖模型。做到以下幾點:

  1. 創建您的視圖類(Shell.xaml)
  2. 在同一位置,添加您的視圖 模型類(ShellViewModel.cs)
  3. 視圖模型類文件重命名爲 與視圖名稱相同,但是 附加.mo德爾到文件路徑 (Shell.model.cs)
  4. 編輯項目文件(無論是 手動或使用功率指令在VS 擴展)
  5. 找到編譯元件,用於在 視圖模型類該項目 XML文檔
  6. 添加子DependentUpon元素 ,其內容是 視圖類的名稱
  7. 保存更改並重新加載項目

這將導致視圖模型類在視圖的代碼隱藏文件的旁邊被可視地分組。

alt text

+0

這看起來很有趣,但我不確定這是否會被認爲是好的做法。我很想聽到別人對此的想法。 – 2010-10-25 06:01:20

+0

這對於以視圖直觀地組織視圖模型非常有用,這與代碼隱藏鏈接到視圖的方式相同。我認爲最佳實踐是關於是否應該將視圖模型放在視圖中的單獨類庫中,這取決於您的重用和測試場景。在一些項目中,我在另一個圖書館中使用了視圖模型,但是在更簡單的項目中,他們將它們放置在與視圖相同的項目中。 – Oppositional 2010-10-25 15:49:17

+1

這很有趣,但它不適合視圖模型可以被多個視圖使用的事實。此外,分組文件通常是部分類,視圖模型不能也不應該這樣做。 – 2015-01-25 22:06:54

2

對於ASP.NET MVC我把我的視圖模型在ViewModels.{Controller}空間和類名是剛剛。我不使用ViewModel後綴,就像視圖文件沒有View後綴一樣。

相關問題