剛學MVC時常常Model與ViewModel搞不清楚。後來才裡解要看當下環境要什麼東西,常常把當下要用的那個東西稱為Model。
像講MVC的M指的Model是指跟資料庫、資料處理、資料邏輯,這種資料都歸Model
如果是在Controller Action講Model,通常是講Model Bindeing模型繫結,指的是這個Action要接受傳入的參數是什麼類別,asp.net會幫你指定的類別當作是一個模型,將前端或客戶端傳來的參數依名字符不符合、型態符不符合一個一個填入進去,最後拿到的那團資料統稱為Model。
如果是在View,@model後面接型別,是宣告這個頁面要用的資料的型別是什麼。宣告完後,再以大寫M的@Model作為變數名稱,用來取得傳進View裡面(@model事先宣告型別後)的資料。
如果宣告的資料型別,是只有View會用到,而MVC的M指的Model不會用到。變成這個資料類別只有View會用,那我們會把該資料類別名稱後方加上ViewModel。Action在接前端傳來的資料也可以使用我們定義的ViewModel類別作為骨架接受傳來的資料(做為模型繫結)。
大概是這樣~~~