ASP.NET MVC — Model

謝駿辰
Jason的網頁筆記
Oct 12, 2021
Photo by Paul Skorupskas on Unsplash

網站已搬家,請到新網站支持我呦> https://jasonhsieh-web.github.io/

何謂Model?

MVC中有關「資料」的任務都是皆由Model負責。負責定義資料型態,不管是在Controller或是View中,所有資料的型態都會參考到View。

Model的任務

MVC強調關注點分離,其中Model只負責與資料有關的商業邏輯,其他如:控制網站流程、資料流向或頁面顯示等工作,Model都不會介入,Model更著重於有效率地提供資料的存取、資料格式驗證、商業邏輯驗證等等。獨立性非常高的Model常會因為撰寫太多商業邏輯後,導致閱讀不易,因此建議在寫大量的商業邏輯可以多加一個Service的資料夾,讓Model只專注在資料存取及格式驗證上。

動手建立Model看看吧

我們對Model資料夾按右鍵,增加一個Todo的類別,給他幾個屬性,如上圖如果對類別有問題的可以參考我這篇,有介紹類別與物件。

好我們再建立一個Service的資料夾,並新增一個function來建立物件,如下圖。

這邊只是簡單介紹Model再MVC的角色,當然實務上Model更容易用來接收資料庫的資料。

再來有幾個步驟我們在Controller中使用我們寫的function並傳給View。

再來我們要新增Index的View

並且把剛剛在Controller上傳過來的Model顯示出來看看,記得在上頭的地方要宣告,在使用時才有參數提示,這是強型別的特性。

看看成果~

DataAnnotations語意標註

再來介紹我們可以使用DataAnnotations進行語意標註,例如用「DisplayName」來設定顯示名稱,「Requierd」要求資料必須輸入等等。更多詳細資料可以參考這裡

使用時記得引用以下命名空間

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

修改一下,我們一開始建立的Model,並且在View上試試效果。

Html.DisplayNameFor是屬於HtmlHelper內的一種方法,在View主題的時候會提到。

以上就是Model的簡單基本介紹,有空會再補充稍微進階的用法。

如果我的筆記對您有幫助的話,不吝嗇給我個clap哦~ 謝謝您 !

--

--