默認的ASP.NET MVC項目設置了一個「模型」目錄,我不知道我曾經用過少量我曾經參與過的MVC項目。通常,我有一個單獨的「庫」項目來存儲業務邏輯類。ASP.NET MVC「模型」目錄:它有什麼好處?
現在我很好奇:我錯過了一些沒有利用默認ASP.NET「Models」目錄的優勢嗎?是否有一些內置的功能可以很好地使用它?
默認的ASP.NET MVC項目設置了一個「模型」目錄,我不知道我曾經用過少量我曾經參與過的MVC項目。通常,我有一個單獨的「庫」項目來存儲業務邏輯類。ASP.NET MVC「模型」目錄:它有什麼好處?
現在我很好奇:我錯過了一些沒有利用默認ASP.NET「Models」目錄的優勢嗎?是否有一些內置的功能可以很好地使用它?
我通常將這個目錄用於我的視圖模型。域模型存在於單獨的項目/程序集中,但視圖模型與Web目錄一起保存在Models目錄中。將模型添加到此目錄會自動將它們設置在* .Models名稱空間中。
該文件夾本身沒有「特殊」功能,但只是建議您在哪裏保留模型類(即您的數據類,例如ORM生成的(LINQ))。
示例類是客戶,地址,訂單等模型底層的數據實體。
因爲我一般保持我的模型在一個單獨的項目/組件,我用的是Models
文件夾來存儲UI特定的類,就像如果我有一個顯示既是Widget
和Foosit
一個觀點,我只是包裝起來的WidgetFoositContext
目的。
public class WidgetFoositContext {
public Widget Widget { get; }
public Foosit Foosit { get; }
}
我使用模型目錄來存儲業務對象的組合。如果您在產品控制器中,我將創建一個ProductViewData類來存儲產品本身以及列表推薦產品和該產品的評論列表。
我更願意讓我的業務對象變得非常簡單,模型目錄就是我可以將我需要的不同形式的數據組合在一起的地方。
你不會錯過任何東西。在我看來,文件夾創建的唯一原因僅僅是因爲它是ASP.NET MVC,他們需要「M」,「V」和「C」的文件夾。默認情況下,ASP.NET MVC不會告訴你如何實現「M」,所以它只是給你一個空白文件夾,作爲你放置模型類的建議。你可以自由刪除這個文件夾,並把你的模型放在你想要的位置。