03-03 ASP.NET MVC ASP. N MVC - delightpress.com.tw · ASP.NET MVC 3 Application...

15
CHAPTER 03 新手上路初體驗 59 01 06 02 04 05 03-03 ASP.NET MVC PART 最後,執行「建置方案」就可以將方案根目錄下的packages目錄完整還原,如圖 3-31所示: :建置方案 03-03 建立第一個ASP.NET MVC專案 接下來,我們會用一個非常簡單的留言板程式概要說明ASP.NET MVC 4網站的開 發過程,讓首次接觸ASP.NET MVC的開發人員能對ASP.NET MVC開發有個大致 的輪廓。 我們的第一個專案將不會提到過多與資料庫相關的技術,因此我們將以Entity Framework Code First開發技術進行資料存取,若讀者想深究其細節,請參考其他 相關書籍,或參考本書第五章內容。 除此之外,本章的核心在於體驗ASP.NET MVC開發過程,若遇到看不懂的詞彙或 技術,可以先跳過,等到《第2篇:技術講解篇》的時候就會有更詳盡的說明。 來完成本節範例是可以的,但建議先透過版本,以免出現靈異現象。 TIPS 讀者使Visual S tudio 2 0 1 0 來完成本節範例是可以的,但建議先透過 NuGet Entit y Framework 升級5.0 版本,以免出現靈異現象3-31 03-03 建立第一個 ASP.N 接下來,我們會用一個非常簡單的留言 ASP.NET MVC 我們的第一個專案將不會提到過多與 Framework Code First 開發技術進行資 相關書籍,或參考本書第五章內容 除此之外,本章的核心在於體 技術,可以先跳過,等 MVC 專案 程式概要說明 ASP.N 的開 發人員能對 ASP.NE 料庫相關的技術,因此我們將以 Entity 取,若讀者想深究其細節,請參考其他 MVC 開發過程,若遇到看不懂的詞彙或 講解篇》的時候就會有更詳盡的說明。 是可以的,但建議

Transcript of 03-03 ASP.NET MVC ASP. N MVC - delightpress.com.tw · ASP.NET MVC 3 Application...

CHAPTER 03 新手上路初體驗 59

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

最後,執行「建置方案」就可以將方案根目錄下的packages目錄完整還原,如圖

3-31所示:

圖3-31:建置方案

03-03 建立第一個ASP.NET MVC專案

接下來,我們會用一個非常簡單的留言板程式概要說明ASP.NET MVC 4網站的開

發過程,讓首次接觸ASP.NET MVC的開發人員能對ASP.NET MVC開發有個大致

的輪廓。

我們的第一個專案將不會提到過多與資料庫相關的技術,因此我們將以Entity

Framework Code First開發技術進行資料存取,若讀者想深究其細節,請參考其他

相關書籍,或參考本書第五章內容。

除此之外,本章的核心在於體驗ASP.NET MVC開發過程,若遇到看不懂的詞彙或

技術,可以先跳過,等到《第2篇:技術講解篇》的時候就會有更詳盡的說明。

TIPS

讀者使用Visual Studio 2010來完成本節範例是可以的,但建議先透過NuGet將Entity

Framework升級到5.0版本,以免出現靈異現象。

TIPS

讀者使用Visual Studio 2010來完成本節範例是可以的,但建議先透過NuGet將Entity

Framework升級到5.0版本,以免出現靈異現象。

圖3-31

03-03 建立第一個ASP.N

接下來,我們會用一個非常簡單的留言

發 ASP.NET MVC的

我們的第一個專案將不會提到過多與

Framework Code First開發技術進行資

相關書籍,或參考本書第五章內容

除此之外,本章的核心在於體

技術,可以先跳過,等

專案

MVC專案

程式概要說明ASP.N 的開

發人員能對ASP.NE 致

料庫相關的技術,因此我們將以Entity

取,若讀者想深究其細節,請參考其他

MVC開發過程,若遇到看不懂的詞彙或

講解篇》的時候就會有更詳盡的說明。

例是可以的,但建議先

ASP.NET MVC 4開發實戰60

❙ 3-3-1 利用ASP.NET MVC 4專案範本建立專案

開啟Visual Studio 2012,選取「檔案」→「專案」。

圖3-32:新增專案

選取「Web」→「ASP.NET MVC 4 Web 應用程式」,名稱請輸入MvcGuestbook。

圖3-33:建立「ASP.NET MVC 4 Web 應用程式」

專案

2,選取「檔案」→

圖3-32

選取「Web」→「ASP.NET MVC 4 Web 應 ,名稱請輸入MvcGuestbook。

VC 4 Web 應用程式」

CHAPTER 03 新手上路初體驗 61

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

TIPS

在Visual Studio 2012中並不支援ASP.NET MVC 2專案類型,若要開啟現有ASP.NET MVC 1.0

或ASP.NET MVC 2.0專案的話,必須使用Visual Studio 2010開發工具。

若要升級專案,也可考慮下載ASP.NET MVC 3 Application Upgrader自動升級工具,透過

ASP.NET MVC 3 Application Upgrader工具的協助下,可以幫你快速將現有ASP.NET MVC

2.0的網站升級到ASP.NET MVC 3.0或ASP.NET MVC 4.0,以下是該工具的相關資料:

ASP.NET MVC 3 Application Upgrader

http://aspnet.codeplex.com/releases/view/59008

ASP.NET MVC 3 Application Upgrader 使用說明

http://blogs.msdn.com/b/marcinon/archive/2011/01/13/mvc-3-project-upgrade-

tool.aspx

新增專案時,會先跳出專案範本選擇精靈,詢問你要使用哪個專案範本,在此我

們選擇「網際網路應用程式」,而其他選項我們保留其預設即可,直接按下確定

按鈕。如圖3-34。

圖3-34:ASP.NET MVC 4專案範本選擇精靈

TIPS

在Visual Studio 2012 MVC 2專案類型,若要開啟現有ASP.NET MVC 1.0

或ASP.NET MVC 2.0專 sual Studio 2010開發工具。

若要升級專案,也可考 C 3 Application Upgrader自動升級工具,透過

ASP.NET MVC 3 App 工具的協助下,可以幫你快速將現有ASP.NET MVC

2.0的網站升級到ASP.N NET MVC 4.0,以下是該工具的相關資料:

ASP.NET MVC 3 App

http://aspnet.codeplex.com/releases/view/59008

ASP.NET MVC 3 App 使用說明

http://blogs.msdn.com/b/marcinon/archive/2011/01/13/mvc-3-project-upgrade-

新增專案時,會先跳出專案範本選擇精

們選擇「網際網路應用程式」,而其他

按鈕。 。

中並不支援ASP.NET M

專案的話,必須使用Vis

考慮下載ASP.NET MVC

plication Upgrader工

NET MVC 3.0或ASP.N

plication Upgrader

plex.com/releases/v

plication Upgrader 使

com/b/marcinon/ahttp://blogs.ms

tool.aspx專案

問你要使用哪個專案範本,在此我

我們保留其預設即可,直接按下確定

3-project-upgrade-

ASP.NET MVC 4開發實戰62

執行「偵錯」→「開始偵錯」 (或按下

【F5】功能鍵) 執行網站,即可啟動一個預

設的ASP.NET MVC 4網站。

此網站具有非常基本的功能,包括3頁簡單的頁面與會員機制,這些頁面都有套

用主版頁面 (Layout Page)、有使用ASP.NET內建的Membership功能,可以進行會

員註冊、登入、登出等。

圖3-36:執行預設的ASP.NET MVC 4網站

圖3-35:偵錯後啟動ASP.NET MVC網站

網站,即可啟動一個

網站。

此網站具有非常基本的功能,包括3頁簡

用 Page)、有使用ASP

員註冊、登入、登出等。

單的頁面與會員機制,這些頁面都有套

T內建的Membersh 會

P NET MVC 4網站

圖3-35:偵錯後啟動ASP.NET MVC網站

CHAPTER 03 新手上路初體驗 63

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

ASP.NET MVC 4 專案範本內建的會員機制,在網頁第一次執行會員機制相關頁面

後,會在網站的App_Data目錄下自動建立一組預設資料庫檔案 (*.mdf, *.ldf),其

檔名規則將會是aspnet-專案名稱-日期時間.mdf,如圖3-37所示:

圖3-37:執行預設的ASP.NET MVC 4網站

TIPS

由於自動建立的資料庫並不會自動加入到Visual Studio 2012專案中,因此預設的情況在App_

Data目錄下,將看不到相關檔案,這時你必須點選方案總管上方工具列的「顯示所有檔案」

按鈕,確認點選後就可以看到不在專案中,但存在檔案總管理的檔案了。

在ASP.NET MVC 4專案新增完成後,會自動建立幾個標準的目錄結構與重要檔

案,圖3-38是預設專案範本所建立的重要檔案與目錄解說:

TIPS

由於自動建立的資料庫 sual S 因此預設的情況在App_

Data目錄下,將看不到相關檔案,這時你必須點選方案總管上方工具列的「顯示所有檔案

中,但存在檔案總管理的檔案了。

_Data目錄下自動建

et-專案名稱-日期時

圖3-37:執行預設

在ASP.NET MVC 4專案新增完

案,圖3-38是預設專案範本

料庫並不會自動加入到Vis

Da 將看不到相關檔案,這時你

按鈕,確認點選後就可以看到不在專案中

專案

.NET MVC 4網站

自動建立幾個標準的目錄結構與重要檔

檔案與目錄解說:

Studio 2012專案中,因 _

點選方案總管上方工具列的「顯示所有檔案」

在檔案總管理的檔案了

ASP.NET MVC 4開發實戰64

定義CSS/JS打包壓縮的規則

全域 Action Filter 定義的地方

定義網址路由 (Routing) 的地方

放置網站內所有靜態內容

例如:圖片、CSS、下載檔案、影片⋯

放置ASP.NET MVC控制器

所有ASP.NET MVC與Models有關的程式碼,例如:EDMX、DBML ⋯

所有JavaScript、VBScript指令檔存放位址

放置ASP.NET MVC檢視

放置HomeController所屬檢視的目錄

放置全站共用檢視的目錄,可能放置

Layout頁面或Partial View或自訂預設錯誤頁面等

圖3-38:預設專案範本建立的檔案與目錄

TIPS

基於第2章提到的以習慣取代配置原則,一般來說我們不會特別去更動這些目錄名稱。

若要比較ASP.NET MVC與ASP.NET Web Forms的差別,我們先以顯示在瀏覽器

的網址來比對其差異,請先看以下比較表,指出ASP.NET Web Forms與ASP.NET

MVC之間在找程式碼位置的時候不一樣的地方:

這些目錄名稱。

TIPS

基於第2章提到的以習慣取代配置原則,一般來說

圖3-38:預設

TIPS

Forms的差別,我們

,指出ASP.NET W

NET MVC與Models有關的程,例如:EDMX、DBML⋯

所有JavaScript、VBScript指令檔存放位址

放置ASP.NET MVC檢

放置HomeCont

放置全站共用檢視

Layout頁面或Partial Vie 訂預設錯

誤頁面等

建立的檔案與目錄

地方:

我們不會特別去更動這

CHAPTER 03 新手上路初體驗 65

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

頁面名稱 使用技術 網址列 程式碼位置

首頁

ASP.NET Web Forms

http://localhost//Index.aspx/Index.aspx.cs

ASP.NET MVC http://localhost//Controller/HomeController.cs/Views/Home/Index.aspx

關於

ASP.NET Web Forms

http://localhost/About.aspx

/About.aspx (頁面)/About.aspx.cs (程式碼)

ASP.NET MVChttp://localhost/Home/About

/Controller/HomeController.cs (程式碼)/Views/Home/About.aspx (頁面)

表3-1:ASP.NET Web Forms與ASP.NET MVC在找程式碼位置的比較表

對於ASP.NET Web Forms來說,「網址路徑」等同於「檔案路徑」,因此要從網

址路徑對映出檔案實體所在位置相當直覺,一般人應該對此不會感到困惑才對。

但ASP.NET MVC若要透過「網址路徑」來找尋檔案,就必須配合ASP.NET MVC

架構的規範來找尋檔案,事實上ASP.NET MVC的「網址路徑」與「檔案路徑」對

應關係是透過「網址路由 (Routing)」來定義的,我們可以從專案內的App_Start\

RouteCon�g.cs檔案看到一個RegisterRoutes方法定義如下:

public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }

這裡定義了兩個預設的網址路由 (Routing):

IgnoreRoute

■設定 *.axd 等格式的網址路徑不要透過ASP.NET MVC執行。

■例如:ASP.NET內建的Trace.axd或其他預設的HttpHandler都不要透過ASP.

NET MVC處理,這樣設定的目的是讓ASP.NET MVC與ASP.NET Web Form

可以在同一個站台下執行而不會互相影響。

public static void Register

表3-1:

對於ASP.NET We

址路徑對映出檔案

但A

Ro

技術 網址列

Web http://loca

MVC http://loca

Web http://locaAbout.aspx

MVChttp://locaHome/Abo

P.NET Web Forms與A

orms來說,「網址

體所在位置相當直

要透過「網址路徑

案,事實上ASP.NE

址路由 (Routing)」來

案看到一個RegisterR

{ routes.IgnoreRoute("

routes.MapRoute name: "

ur

tes)

專案

程式碼位置的比較表

等同於「檔案路徑」,因此要從網

一般人應該對此不會感到困惑才對。

來找尋檔案,就必須配 MVC

MVC的「網址路徑」與「檔案路徑」對

定義的,我們可以從 rt\

es方法定義如下:

s(RouteCollection

e}.axd/{*pathInfo}

on}/{id}",ller = "Home", act

過ASP.NET MVC執

其他預設的HttpHan

ASP.NET MVC 4開發實戰66

MapRoute

■透過MapRoute方法是定義ASP.NET MVC網址路由最主要的方式。

■這一條路由定義了三個參數:

1. name:路由名稱。

2. url:設定網址路徑如何對應到控制器、動作與路由值。

3. defaults:設定 {controller}、{action}、{id} 這3個路由參數的預設值。

從這個預設的MapRoute可以得知,當瀏覽器輸入 http://localhost/Home/About

時,透過Routing的對應之下,由於網址路徑的部分為 Home/About,所以會對應

出 {controller} 為 Home,而 {action} 為 About,因此ASP.NET MVC就會先進入

Controllers目錄找到Home這個控制器 (也就是HomeController.cs檔案),然後再找

到這個控制器內的About公開方法 (Public Method),這個公開方法就是MVC的動

作 (Action),也是實際執行網頁程式的入口點。

當瀏覽器輸入http://localhost/想要取得首頁時,透過Routing的對應之下,由於網址

路徑的部分沒有任何內容,所以會使用MapRoute的第3個參數 (defaults) 所設定的

預設值來替代,因此網站首頁的網址就會先進入Controllers目錄找到Home這個控

制器,然後再找到Index這個公開方法,並進一步執行ASP.NET MVC所有過程。

TIPS

在定義 Routing 的時候各位可能會注意到有個大括號 { } 包裹著一個變數名稱,這個變數

名稱就是路由參數,這裡的路由參數是可以自訂的,不過在所有路由參數中最重要的就

是 {controller} 與 {action} 這兩個,ASP.NET MVC為了要能對應到正確的Controller與

Action,所以這兩個路由參數是必要參數,如果網址路徑沒有包含這兩項的話,在defaults參

數裡必須要指定才行。

我們先來看一下預設的HomeController的內容:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;

會注意到有個大

路由參數是可以自

個變數

路由參

action} 這兩個,ASP.NET 到正確

Action,所以這兩個路由參數是必要參數,如果網址路徑沒有包含這兩項的話,在defaults參

數裡必須要指定才行。

出 {controller} 為

Controllers目錄找到

到這個控制器內的

作 (Action),也是實

當瀏覽 p:/

路徑

制器

方法是定義ASP.NET

了三個參數:

名稱。

址路徑如何對應到控

定 {controller}、{act

oute可以得知,當

對應之下,由於網址

me,而 {action} 為

Home這個控制器 (

out公開方法 (Pub

際執行網頁程式的入

calhost/想要取得首

內容,所以會使用

網站首頁的網址就

ndex這個公開方法,

TIPS

在定義 Routing 的時候各位可能會

名稱就是路由參數,這裡的路由

是 {controller} 與 {actio

所以這兩

P.NET MVC就會先進入

Controller.cs檔案),然後再找

od),這個公開方法就是MVC的動

時,透過Routing的對應之下,由於網址

pRoute的第3個參數 的

先進入Controllers目 控

進一步執行ASP.NET

容:

數名稱,這個變數

參數中最重要的就

大括號 { } 包裹著一個

訂的,不過在所有路

T MVC為了要能對應到正確的Controller與

網址路徑沒有包含這兩項的話,在d f

CHAPTER 03 新手上路初體驗 67

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

namespace MvcGuestbook.Controllers{ public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = "修改此範本即可開始著手進行您的 ASP.NET MVC 應用程式。";

return View(); }

public ActionResult About() { ViewBag.Message = "您的應用程式描述頁面。";

return View(); }

public ActionResult Contact() { ViewBag.Message = "您的連絡頁面。";

return View(); } }}

首先,控制器 (Controller) 類別在開發的時候必須符合以下規範:

■ 類別名稱一定要有Controller結尾。例如:GuestbookController就代表Guestbook

控制器。

■ 類別繼承於Controller基底類別 (或實作IController介面的類別)。

■ 類別中須包含數個回傳值為ActionResult的公開方法,這些方法在ASP.NET

MVC中稱為動作 (Action)。

在預設首頁Index動作中,第一行的ViewBag是一個dynamic型別的物件,因此該物

件可以設定任意型別的資料進去,這裡所指定的屬性與值都可以在ASP.NET MVC

的View中讀取。

ViewBag.Message = "修改此範本即可開始著手進行您的 ASP.NET MVC 應用程式。";

首先,控制器 (Controller) 類別在開發

■ 類別名稱一定要有Controller結尾

控制器。

■ 類別繼承於Controller基底

類別中須包含數

ook.Controllers

meController : Cont

onResult Index()

Message = "修改此範

View();

onResult About()

.Message = "您的應用

View();

onResult Contact()

.Message = "您的連絡

View();

ViewB

retur }

public Ac { ViewB

您的 ASP.NET MVC 應

候必須符合以下規

:GuestbookContr

Controller介面的類

ult的公開方法,這

ag是一個dynamic

專案

er就代表Guestbook

)。

些方法在ASP N

";

指定的屬性與值都可

ASP.NET MVC 4開發實戰68

TIPS

動態型別 (dynamic) 出現在C# 4.0之中,因此ASP.NET MVC 4.0網站必須執行在 .NET

Framework 4.0以上版本才行。

第二行的return View(); 事實上是來自於Controller基底類別的一個輔助方法 (Helper

Method),它會回傳一個ViewResult物件,ViewResult是繼承自ActionResult類別,

主要用途是告知ASP.NET MVC框架我要回應一個檢視 (View),而該檢視就來自於

ASP.NET MVC框架所設定的「預設路徑」,以Home控制器與此Index動作為例,

透過View()輔助方法就會去告知ASP.NET MVC框架:「我要顯示Views\Home\

Index.aspx這張網頁的執行結果」。

接著,我們利用Visual Studio的功能新增切換至該動作的檢視,先將游標移至動作

方法的定義處,然後按下滑鼠右鍵,並選取「移至檢視」。

圖3-39:切換至該動作相對應的檢視

從該檢視的網頁內容可以發現,頁面中一開始就是@開頭的語法,這個語法是從

ASP.NET MVC 3開始新增的Razor語法 (讀音:瑞熱),跟以往我們撰寫ASP.NET

MVC 2.0或ASP.NET Web Form寫的ASPX差異甚大,但新版的Razor語法讓套上

程式的View頁面變的非常乾淨清爽,雖然ASP.NET MVC 4一樣可以用ASP.NET

MVC舊版的WebForm View,但筆者建議大家盡量使用Razor來撰寫View頁面,以

提升View程式碼的可讀性。

TIPS

動態型別 (dynamic) ,因此ASP.NET MVC 4.0網站必須執行在 .NET

Framework 4.0以上版

); 事實上是來自於C

一個ViewResult物件

NET MVC框架我要

所設定的「預設路徑

透過View()輔助方法就會去告知ASP.N

Index.aspx這張網頁的執行結果」。

接著,我們利用Visual Studio的功能新增

方法的定義處,然後按下滑鼠右鍵,並選

圖3-39:切換

從該檢視的網頁內容可以發現

ASP.NET MVC 3開始新增

出現在C# 4.0之中

版本才行。

「我要顯示Views\Home\

該動作的檢視,先將游標移至動作

「移至檢視」。

作相對應的檢視

開始就是@開頭的語法,這個語法是從

讀音:瑞熱),跟以往我們撰寫ASP.NET

差異甚大,但新版

ASP.NET MVC 4一

大家盡量使用Razor來

CHAPTER 03 新手上路初體驗 69

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

圖3-40:該動作 (Action) 相對應的檢視 (View)

不過當你仔細一看,你會發現這個Index.cshtml頁面並不是一個完整的HTML頁

面,以往我們在ASP.NET Web Form或ASP.NET MVC 2.0中會套用MasterPage屬性

來套用主版面,但ASP.NET MVC 4.0的主版面設定到哪去了呢?

這時我們先透過方案總管瀏覽到專案的Views

目錄下,裡面有個_ViewStart.cshtml檔案,這

個檔案會在所有View執行之前先載入,通常

我們會在這個檔案裡設定View的一些基本屬

性,例如要載入主版頁面 (Layout Page):

開啟_ViewStart.cshtml檔案後,你會發現這

個檔案只有短短3行,其中定義了一個Layout

屬性,並指向到 ~/Views/Shared/_Layout.

cshtml這個主版頁面,這也代表了在Views目

錄下所有的檢視 (View) 都會預設載入這個主

版頁面。

圖3-42:Views\_ViewStart.cshtml檔案的內容

圖3-41:瀏覽至方案總管中的Views\ _ViewStart.cshtml檔案

圖3-40:該動作 (Act

過當你仔細一看,你會發現這個Ind

面,以往我們在ASP.NET Web Form或A

來套用主版面,但 SP.NET MVC 4.0的

這時我們先透過方案總管瀏覽到專案的

目錄下,裡面有個 ViewStart.cshtml檔案

個檔 w執行之前先載入

我們會在這個檔案裡設定View的一些基

性,例如要載入主版頁面 (Layout Page)

開啟_ViewStart.cshtml檔案後,你會

個檔案只有短短3行,其中定義了一個

屬性,並指向到 ~/Views/Shared

cshtml這個主版頁面,這也代表

錄下所有的檢視 (View) 都

專案

一個完整的HTM

2.0中會套用MasterPage屬性

定到哪去了呢?

本屬

現這

out

ut.

s目

個主

art.cshtml檔案的內容

圖3-41:瀏覽至方案總管中的Views\ _ViewStart.cshtml檔案

ASP.NET MVC 4開發實戰70

打開 ~/Views/Shared/_Layout.cshtml主版頁面後,會發現這裡就含有完整的

HTML結構了,如圖3-43所示:

圖3-43:Views\Shared\_Layout.cshtml檔案的內容

我們剛剛在Controller中有看到ViewBag.Message被設定了一個字串,到了Index.

cshtml這頁檢視 (View) 就可以透過以下語法將其資料讀出,並顯示於網頁內容中。

@ViewBag.Message

另外,在Index.cshtml這頁最上方也設定了一組ViewBag.Title屬性,這裡所定義的

屬性值也會自動被傳入同一個View以及預設的_Layout.cshtml主版頁面裡。

圖3-44:Views\Home\Index.cshtml檔案的內容

-43所示:

3-43:Views\Shared\

我們 r中有看到ViewBag

cs ) 就可以透過以下語

@Vie

另外,在Index.cshtml這頁最上方也設

屬性值也會自動被傳入同一個View

out.cshtml檔案的內容

essage被設定了一個 x.

將其資料讀出,並

一組ViewBag.Title 性,這裡所定義的

設的_Layout.cshtml 版頁面裡。

dex.cshtml檔案的內容

CHAPTER 03 新手上路初體驗 71

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

圖3-45:Views\Shared\_Layout.cshtml檔案的內容

❙ 3-3-2 建立資料模型

Step01: 在「方案總管」視窗中點選Models目錄,按下滑鼠右鍵,並點選「加

入」→「類別」。

圖3-46:加入類別項目

❙ 3-3-2 建立資

Step01:在「方案

3-45:Views\Shared

模型

總管」視窗中點選

入」→「類別」。

專案

錄,按下滑鼠右鍵,並點選「加

入類別項目

ASP.NET MVC 4開發實戰72

Step02: 我們將類別取名為 Guestbook.cs,並點擊新增按鈕。

圖3-47:設定類別名稱

Step03: 新增一個簡單類別,定義出一個留言版所需的資料模型,其程式碼如下:

namespace MvcGuestbook.Models{ public class Guestbook { public int Id { get; set; } public string 姓名 { get; set; } public string Email { get; set; } public string 內容 { get; set; } }}

Step04: 最後,我們執行一次建置專案,確認沒有任何問題。

圖3-48:執行建置方案,以確保專案沒有任何語法錯誤

Step0 個

ok.Models{ public class Guestbook public int Id { get; set; } public string 姓名 { get; se public string Email { get; public string 內容 { get; }}

圖3-47:設

單類別,定義出一個

確認沒有任何問題

名稱

言版所需的資料模型,其程式碼如下:

CHAPTER 03 新手上路初體驗 73

01

06

02

04

05

0303-03

建立第一個A

SP.N

ET M

VC

專案

PART

TIPS

開發ASP.NET MVC的資料模型 (Model) 其實非常彈性,你可以用自己熟悉的方式存取資料

庫,例如:ADO.NET, LINQ to SQL, NHibernate或Entity Framework等,在專案的Models

目錄只是個目錄而已,是希望你習慣將與資料存取或商業邏輯有關的程式都統一集中在

Models目錄下,但這並非強制性的限制,況且當專案規模變大時,甚至於有可能會將整個

Models轉變成一個獨立的類別庫專案。

❙ 3-3-3 建立控制器、動作與檢視

Step01: 在「方案總管」視窗中點選Controllers目錄,按下滑鼠右鍵,並點選

「加入」→「控制器」。

圖3-49:點選Controllers目錄,並加入控制器

TIPS

開發ASP.NET MVC的 其實非常彈性,你可以用自己熟悉的方式存取資料

庫,例如:ADO.NET, LINQ to SQL, NHibernate或Entity Framework等,在專案的Models

目錄只是個目錄而已,是希望你習慣將與資料存取或商業邏輯有關的程式都統一集中在

Models目錄下,但這並非強制性的限制,況且當專案規模變大時,甚至於有可能會將整個

Models轉變成一個獨立

器、動作與檢視

Step01:在「方案總管」視窗中點選

「加入」→「控制器」。

的資料模型 (Model) 其

, LINQ to SQL, NHibe

已,是希望你習慣將與

這並非強制性的限制,

立的類別庫專案。

專案

,按下滑鼠右鍵,並點選

s目錄,並加入控制器