標籤

ASP.NET MVC (29) Visual C# (15) JQuery (10) Plugins (8) JQuery Plugins (6) JavaScript (6) MySQL (5) CSS (4) LinQ (4) Mac OS (4) CentOS (3) Design Pattern (3) Entity Framework (3) IIS (3) Python (3) Windows (3) php (3) Docker (2) LAMP (2) SQL Server (2) WCF (2) .NET (1) .NET Core (1) AWS (1) Browser (1) GIS (1) IE (1) Internet Security (1) Linux (1) Platform (1) React (1) SEO (1) Testing (1) VMware (1) Windows 7 (1) cookie (1) curl (1) laravel (1) phpBB (1) session (1) 中古屋 (1) 透天 (1) 閒言閒語 (1) 面試 (1) 鳥松 (1)

2014年10月6日 星期一

使用ASP.NET MVC 實作購物網站 (六) - 模型(Model)


模型(Model)

Model負責與資料庫溝通的相關邏輯,我們可以自行定義模型的類別,或是使用Entity Framework來幫我們自動產生資料庫對應的類別,今天我們以自定義類別為主。

承接昨天的範例,我們現在希望在Controller向Model取得所有商品的資料後,傳送給View並顯示出來,首先看Model部分
( 專案路徑為[Models/RouteTest/TempProducts.cs] )


TempProducts類別定義單筆商品資料,屬性定義如下:
ID : 商品編號
Name : 商品名稱
Price : 商品價格

除此之外,此類別也定義了getAllproducts()方法來模擬取出所有商品資訊,其中包含三筆商品資訊。



Controoler部分
(專案路徑為[Controllers/RouteTestController.cs] )

這部分比較簡單,就是跟Models中的TempProducts類別取得所有商品資訊後,傳送給View();


View部分
(專案路徑為[Views/RouteTest/Index.cshtml])

View部分要注意一開始的宣告【@model List<Carts.Models.RouteTest.TempProducts>】是指名傳送進來的模型資料型態為List<Carts.Models.RouteTest.TempProducts>,須注意當前模型內容使用【this.Model】來取得。

運行結果:
( Url位址 : http://localhost:51352/RouteTest/Index )



以上就是基礎的MCV完整流程,美中不足的一點是商品資訊並非真正由資料庫取得,而是使用寫死在TempProducts.cs類別的方式,明天我們將示範如何真正從資料庫拿資料。


*今天的原始碼請參考這裡

4 則留言:

  1. 請位為何我在new一個Carts的時候就錯誤了....

    回覆刪除
  2. 是哪個步驟new一個Carts的呢?可以再描述詳細一點嗎?

    回覆刪除
  3. 作者已經移除這則留言。

    回覆刪除