Asp.net MVC2學習筆記5-簡單一實例(Movie)(上)

來源:互聯網
上載者:User

前面對route、controller、view 已經有了基本的瞭解,今天我們就來一個簡單的執行個體-- Movie

 

 

開始之前,簡單說一下model(模型),相信大家做分層開發的時候一定用過它,MVC的model和他一樣,

每一個model 對應資料庫一張表,這樣我們就是用model的屬性訪問表中每一行記錄的某一列值。

 

微軟的Mvc架構中你可以自己寫model,也可以使用ADO.NET Entity Data Model、Linq to SQL 類等,今天這個執行個體我們用的是

實體資料模型。下面我們就記錄下這個簡單一實例的步驟:

 

一、在資料庫中建一張 Movies 表:

    欄位:ID                     int ,                          --自增長 主鍵

        Movie_Name      nvarchar(50) ,         --電影名稱

        Release_Date    datetime,        --發行日期

 

            

 

二、建立asp.net mvc2 項目

 

  這裡我們可以建立asp.net mvc 2 web application(當然也可以建立一個空的mvc項目),項目名:Movie

 

  

 

  項目建好了以後,我們可以把不用的controller、model、view刪除掉

 

三、建模型層 Model

 

  這裡我們使用實體資料模型來完成我們Model。

 

  在Models檔案夾上右鍵 --> 添加項,選擇ADO.NET Entity Data Model,名稱:Mvoie(我註:Movie)

 

  

 

  下面選擇 從資料庫產生

 

  

 

  建立一個資料庫連接,串連到我們的測試庫

 

  

 

  選擇我們需要的表 (Movie),如果資料庫中有視圖或預存程序的話也可以選擇過來,

  模型命名空間:Models

  點擊完成。。

 

  

 

此時我們就可以看到我們建立的實體資料模型設計介面,不是說會自動把名稱改成單數的嗎?怎麼沒改過來?呵呵,可能是中文版的vs吧,原因不詳。。。我們手工改下吧。。把Movies改為Movie(我註:我這裡倒是單數的,也是中文版的VS)

呵呵,好了,到此為止我們的Model 已經建立好了,是不是覺得實體資料模型很方便呢?。。。

 

 

 

四、建控制層--Controller

 

  上面Model建好以後,我們可以先build一下我們的項目(如果自動產生了測試專案並且把預設的controller刪掉以後,在test項目中會報錯,這時我們把test項目中的controller測試檔案刪掉就好了)

 

  下面我們建立一個Controller名叫:MoviesController

  在 Controllers 檔案夾上右鍵 -->添加-->controller;填入名稱MoviesController並勾選上"Add action methods for Create,Update, and Details scenarios",大家看一下就明白大概意思,就是說“添加建立、更新、和明細這幾個方法”

  點 Add 按鈕。。  

 

  

  

  添加後,我們就可以看到一個帶有添加、編輯、明細功能架構的controller,注意此時只是個架構,並不帶有實際功能的,需要我們自己來完成邏輯代碼的。

 

  

using System;<br /> using System.Collections.Generic;<br /> using System.Linq;<br /> using System.Web;<br /> using System.Web.Mvc;</p><p> namespace Movie.Controllers<br /> {<br /> public class MoviesController : Controller<br /> {<br /> //<br /> // GET: /Movies/</p><p> public ActionResult Index()<br /> {<br /> return View();<br /> }</p><p> //<br /> // GET: /Movies/Details/5</p><p> public ActionResult Details(int id)<br /> {<br /> return View();<br /> }</p><p> //<br /> // GET: /Movies/Create</p><p> public ActionResult Create()<br /> {<br /> return View();<br /> } </p><p> //<br /> // POST: /Movies/Create</p><p> [HttpPost]<br /> public ActionResult Create(FormCollection collection)<br /> {<br /> try<br /> {<br /> // TODO: Add insert logic here</p><p> return RedirectToAction("Index");<br /> }<br /> catch<br /> {<br /> return View();<br /> }<br /> }</p><p> //<br /> // GET: /Movies/Edit/5</p><p> public ActionResult Edit(int id)<br /> {<br /> return View();<br /> }</p><p> //<br /> // POST: /Movies/Edit/5</p><p> [HttpPost]<br /> public ActionResult Edit(int id, FormCollection collection)<br /> {<br /> try<br /> {<br /> // TODO: Add update logic here</p><p> return RedirectToAction("Index");<br /> }<br /> catch<br /> {<br /> return View();<br /> }<br /> }<br /> }<br /> }<br />  

 

 

 這裡我們用 Index方法來實現顯示Movie的列表功能(需要顯示資料,當然我們要先在資料庫裡先Insert幾條測試資料啦。。),此時我們修改下Index裡面的方法,

 

//<br /> // GET: /Movies/</p><p> public ActionResult Index()<br /> {<br /> TestDBEntities _dbEntities = new TestDBEntities();//建立資料庫實體</p><p> return View(_dbEntities.MovieSet.ToList());//返回帶Movie集合的View<br />          //也可以手工指定 ViewData.Model = _dbEntities.MovieSet.ToList();<br /> }<br />

 

 

五、建視圖層 -- View

  現在我們開始建一個與Controller 裡面的Index 方法對於的View,方法是:

  我們在 Index上右鍵-- Add View;

  

  在下面的面板中我們選擇“建立一個強型別的視圖”,何為“強型別”呢,顧名思義它有個“很強的”的類型,呵呵,到底什麼類型呢?好了,我們就在下面選擇我們建立的Model -- Movie.Models.Movie(我註:這裡的類型,我是這麼理解的,不知道有沒有錯,第一個Movie是工程的名字,第二個Models是工程的檔案夾名Models,最後一個Movie則是實體類檔案名稱Movie.edmx,記住不是該檔案裡面的類名),這就是它的類型了。。

 

  在 View context 視圖內容裡我們選擇List (因為我們需要建立一個顯示Movie列表的視圖哦)

  

 

Add 完了以後,我們就基本上完成了顯示 Movie列表的頁面了,是不是很簡單呢?呵呵,好啦,我們可以F5啦!

我們發現起來的首頁還是預設的首頁 Home/Index ,也有人把原來的Home 目錄刪掉了,提示找不到分頁錯誤,呵呵,沒關係,原因是因為我們Global.asax 裡面設定了預設的控制器,還記得啦?我們可以設定下,將new { controller = "Home", action = "Index", id = "" } 這段改成new { controller = "Movies", action = "Index", id = "" } 即可。。。。F5。。 是不是起來就能看到我們的Movie列表啦?哈哈。。。。

 

好,現在基本上顯示列表會搞了,我們再來看看它產生的頁面內容是什麼。。。咦?也沒什麼的嘛,我們選擇List 類型後,他就給我們 foreach 一個表格嘛,這還蠻方便的嘛,呵呵,當然我們也可以不選List類型,選擇一個空類型,然後我們自己寫嘛。。。下面就是View裡面的操作啦,一些 html代碼,大家想怎麼改就怎麼改就好了。。。

 

 

 

好了,今天就寫到這裡,下一篇就具體完成下編輯、新增、刪除、顯示明細的功能(相信大家喜歡思考的話都應該會了,呵呵),希望這文章對新手入門有一點點協助。。。。

 

轉自:http://www.cnblogs.com/bboy/archive/2010/01/25/1655389.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.