Asp.net MVC2学习笔记5-简单实例(Movie)(上)

前面对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),如果数据库中有视图或存储过程的话也可以选择过来,

  模型命名空间:Models

  点击完成。。

  

 

此时我们就可以看到我们创建的 实体数据模型设计界面,不是说 会自动把名称 改成单数的么?怎么没改过来?呵呵,可能是中文版的vs吧,原因不详。。。我们手工改下吧。。把 Movies  改为 Movie

呵呵,好了,到此为止 我们的Model 已经创建好了,是不是觉得 实体数据模型很方便呢?。。。

 

四、建控制层--Controller

  上面Model建好以后,我们可以先build一下我们的项目(如果自动生成了测试项目并且把默认的controller删掉以后,在test项目中会报错,这时我们把test项目中的controller测试文件删掉就好了)

  下面我们新建一个Controller名叫:MoviesController

  在 Controllers 文件夹上 右键 -->添加-->controller ;填入名称 MoviesController并勾选上

  "Add action methods for Create,Update, and Details scenarios",大家看一下就明白大概意思,就是说“添加创建、更新、和明细这几个方法”

  点 Add 按钮。。  

 

  

  

  添加后,我们就可以看到一个带有 添加、编辑、明细功能框架的controller,注意此时只是个框架,并不带有实际功能的,需要我们自己来完成逻辑代码的。

 

  

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace Movie.Controllers
 8 {
 9     public class MoviesController : Controller
10     {
11         //
12         // GET: /Movies/
13 
14         public ActionResult Index()
15         {
16             return View();
17         }
18 
19         //
20         // GET: /Movies/Details/5
21 
22         public ActionResult Details(int id)
23         {
24             return View();
25         }
26 
27         //
28         // GET: /Movies/Create
29 
30         public ActionResult Create()
31         {
32             return View();
33         } 
34 
35         //
36         // POST: /Movies/Create
37 
38         [HttpPost]
39         public ActionResult Create(FormCollection collection)
40         {
41             try
42             {
43                 // TODO: Add insert logic here
44 
45                 return RedirectToAction("Index");
46             }
47             catch
48             {
49                 return View();
50             }
51         }
52 
53         //
54         // GET: /Movies/Edit/5
55  
56         public ActionResult Edit(int id)
57         {
58             return View();
59         }
60 
61         //
62         // POST: /Movies/Edit/5
63 
64         [HttpPost]
65         public ActionResult Edit(int id, FormCollection collection)
66         {
67             try
68             {
69                 // TODO: Add update logic here
70  
71                 return RedirectToAction("Index");
72             }
73             catch
74             {
75                 return View();
76             }
77         }
78     }
79 }
80 

 

 

 

 

 这里我们用 Index方法来实现 显示 Movie的列表功能(需要显示数据,当然我们要先在数据库里先Insert几条测试数据啦。。),此时我们修改下Index里面的方法,

  

 

 1         //
 2         // GET: /Movies/
 3 
 4         public ActionResult Index()
 5         {
 6             TestDBEntities _dbEntities = new TestDBEntities();//创建数据库实体
 7             
 8             return View(_dbEntities.MovieSet.ToList());//返回带Movie集合的View
          //也可以手工指定  ViewData.Model = _dbEntities.MovieSet.ToList();
 9         }
10 

 

 

五、建视图层 -- View

  现在我们开始建一个与Controller 里面的 Index 方法对于的View,方法是:

  我们在 Index上 右键 -- Add View;

  

  在下面的面板中 我们选择 “创建一个强类型的视图”,何为“强类型”呢,顾名思义 它有个 “很强的”的类型,呵呵,到底什么类型呢?好了,我们就在下面选择我们创建的Model -- Movie.Models.Movie,这就是它的类型了。。

 

  在 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代码,大家想怎么改就怎么改就好了。。。

 

 

 

好了,今天就写到这里,下一篇就具体完成下 编辑、新增、删除、显示明细的功能(相信大家喜欢思考的话都应该会了,呵呵),希望这文章对新手入门有一点点帮助。。。。

posted @ 2010-01-25 21:28  -Enchant  阅读(4083)  评论(3编辑  收藏  举报