2010-02-25 119 views

回答

4

它應該放在Web應用程序的「模型」目錄中。 ViewModel根據定義特定於一個或多個視圖,因此屬於網絡應用程序,而不是核心。

可能在使用它們的控制器中定義它們,但是這不能縮放。與在視圖代碼中定義類相同。儘管每文件單類意味着更多的文件,但它更易於查找代碼並且更易於維護。

我會經常爲每個控制器創建一個子文件夾,所以我最終得到了諸如Web.Models.Foo.BarViewModel

0

我把實際的模型類放在Models文件夾中。

/Controllers 
/Models 
    /Entities 
    /Mappings 
    /ValueTypes 
    /ViewModels 

就是這樣的。我是Fluent NHibernate的忠實粉絲。

3

如果在PresentationModel目錄的我的Domain項目中有它們,並且像@Seth Pretry-Johnson那樣,我將它們放在單獨的Controller目錄中。

這是我的一個項目的整體結構:

  • 網站項目
    • 控制器
    • 查看
  • 領域工程
    • 模型
      • 摘要
    • 服務
      • 摘要
    • PresentationModels
      • 用戶
  • 數據訪問項目

HTHS(而不會引發更多的問題.. ;-) ,
Charles

0

它可以去任何你想去的地方,爲什麼你需要有人告訴你在哪裏上課?

很多人都有錯誤的想法,除非你把你的類放入一些按功能分組的特定目錄中,否則就無法工作。對其他框架來說這可能是正確的,但對於ASP.NET MVC而言並非如此。代碼被編譯爲程序集。

+1

我喜歡學習別人的錯誤和艱辛。當然,它*可以去任何地方,但它在哪裏最有意義,並且造成最小的麻煩。 – 2010-02-26 13:47:45