`
javahigh1
  • 浏览: 1287663 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用ASP.NET MVC(C#)15分钟内创建一个电影数据库程序

阅读更多

这篇教程的目的是让你体会一下创建一个 ASP.NET MVC 程序是一种什么样的感觉。在这篇教程里,我通过从头到尾地创建一整个ASP.NET MVC程序来进行说明。我会教你如何创建一个简单的数据库驱动程序,此程序会演示你如何以列表显示、新建和编辑数据库记录。

为了简化我们创建程序的过程,我们将利用Visual Studio 2008的“脚手架”特性。我们让Visual Studio来生成控制器,模型和视图的代码和内容。

如果你已经用过ASP或ASP.NET,那么你会发现ASP.NET MVC和它们是很相似的。 ASP.NET MVC 中的视图与ASP中的页(pages)非常像。而且,就像ASP.NET WebForm程序那样, ASP.NET MVC 可以让你使用.Net Framework提供的语言和类来进行开发。

我希望这个教程可以让你感觉到创建ASP.NET MVC程序与创建ASP或ASP.NET WebForm程序是多么的相似。

电影数据库程序概述

由于我们的目的是要使所有事情都尽量简单,所以我们就创建一个很简单的电影数据库程序。我们这个简单的程序能够做3件事情:

1、列表显示电影数据库记录

2、新建一个电影数据库记录

3、编辑一个电影数据库记录

再说一次,由于我们要尽量简单,我们将利用 ASP.NET MVC 所需的最少特性来创建我们的程序。例如,我们不会用到测试驱动开发。

为了创建我们的程序,我们需要完成以下各个步骤:

1、创建 ASP.NET MVC Web Application项目

2、创建数据库

3、创建数据库对象

4、创建 ASP.NET MVC 控制器

5、创建 ASP.NET MVC 视图

准备工作

你需要Visual Studio 2008或者Visual Web Developer 2008 Express 来创建 ASP.NET MVC 程序,你还需要下载 ASP.NET MVC 框架。

如果你还没有Visual Studio 2008,你可以从以下网址下载一个90天试用版:

http://msdn.microsoft.com/en-us/vs2008/products/cc268305.aspx

或者,你可以使用 Visual Web Developer Express 2008,如果你决定用这个的话,你必须安装Service Pack 1,你可以从以下网址下载带有Service Pack 1的Visual Web Developer 2008 Express

http://www.microsoft.com/downloads/details.aspx?FamilyId=BDB6391C-05CA-4036-9154-6DF4F6DEBD14&displaylang=en

安装完 Visual Studio 2008或者 Visual Web Developer 2008之后,你需要安装ASP.NET MVC 框架,你可以从以下网址下载到:

http://www.asp.net/mvc

如果不想下载ASP.NET 框架和ASP.NET MVC 框架的话,你可以使用Web PlatForm Installer,这是一个可以让你轻松管理电脑上已安装程序的应用程序。

http://www.microsoft.com/web/gallery/Install.aspx

创建一个 ASP.NET MVC Web Application 项目

让我们开始吧,先在Visual Studio 2008里创建一个ASP.NET MVC Web Application 项目。选择菜单“文件(File)”,“新建项目(New Project)”,你就会看到图1所示的“新建项目”对话框,选择C#作为程序语言并选择ASP.NET MVC Web Application 模板,将名称起为MovieApp 后点击“确定”按钮。

图1.“新建项目”对话框

图1.“新建项目”对话框

确保你在对话框顶部的下拉框中选择了.NET Framework 3.5,否则 ASP.NET MVC Web Application 项目模板不会出现。

当你创建了一个新的MVC Web Application项目之后,Visual Studio 会提示你创建一个分离的单元测试项目,出现图2所示的对话框。我们在此教程里由于时间限制(额,当然,我们对此感到一点点愧疚)不会创建测试,所以选择“No”选项后点击"OK"继续。

Visual Web Developer 不支持测试项目.

图2、创建单元测试对话框

图2、创建单元测试对话框

一个ASP.NET MVC 程序有一套标准的文件夹目录:一个Models,Views和Controllers目录,你可以在解决方案资源管理器中看到这些文件夹,我们需要在每一个文件夹中添加文件来创建我们的电影数据库程序。

当你用Visual Studio创建了一个新的MVC程序,就会得到一个样例程序。由于我们打算从简开始,所以我们需要删除这个样例中的内容。你需要删除以下文件和文件夹:

  • Controllers\HomeController.cs
  • Views\Home

创建数据库

我们需要一个数据库来存储我们的电影数据库记录。很幸运的是,Visual Studio包括了一个名为SQL Server Express的免费数据库。参照以下步骤来创建数据库:

1、在解决方案资源管理中的App_Data文件上右键,选择菜单项“添加(Add)”,“新建项(New Item)”

2、选择“数据(Data)”目录,并选择SQL Server 数据库(SQL Server Database )模板(见图3)

3、起名为 MoviesDB.mdf ,点击“添加(Add)”按钮

创建数据库后你可以双击App_Data文件夹中的MoviesDB.mdf 文件来连接到数据库。双击之后会出现服务器资源管理器窗口。

在 Visual Web Developer中服务器资源管理器名为数据库资源管理器

3、创建一个Microsoft SQL Server 数据库

图3、创建一个Microsoft SQL Server 数据库

接下来,我们需要新建一个数据库表。在服务器资源管理器中的“表(Tables)”目录上右键,选择“添加新表(Add New Table)”菜单,将打开数据库表设计器,创建以下数据列:

字段名 数据类型 可否为空
Id Int False
Title Nvarchar(100) False
Director Nvarchar(100) False
DateReleased DateTime False

第一列,Id列,有2个特殊属性。第一,你需要将Id列标记为主键列。选择Id列,点击“设置主键(Set Primary Key)”按钮(钥匙图标)。第二,将Id列标记为标识列。在“列属性( Column Properties )”窗口中,滚动条下拉到“标识规范(Identity Spcification)”区展开。将“是标识(Is Identity)”换成“是(Yes)”。完成以后,表结构如图4所示。

图4、电影数据表

图4、电影数据表

最后一步是保存新表,点击“保存”按钮(软盘图标)并将新表命名为Movies。

新建完表之后,向表里添加以下电影数据。在服务器资源管理器中右键点击Movies表,选择“显示表数据(Show Table Data)”。输入几组你喜欢的电影(如图5)

图5、输入电影数据

图5、输入电影数据

创建模型

我们接下来要创建一组类来表示我们的数据库。我们需要创建一个数据库模型。我们将利用Microsoft Entity Framework 来自动为我们的数据库模型生成类。

ASP.NET MVC框架并没与Microsoft Entity Framework捆绑在一起,你可以利用很多对象关系映射(OR/M)工具,包括LINQ to SQL, Subsonic, 和NHibernate来创建你的数据库模型类。

参考以下步骤来启动“实体数据模型向导( Entity Data Model Wizard)”:

1、在解决方案资源管理器上右键点击Models文件夹,选择“添加”,“新建项”。

2、选择“数据”目录并选择 ADO.NET Entity Data Model 模板。

3、命名为MoviesDBModel.edmx 并点击“确定”按钮。

然后你会看到图6所示的实体数据模型向导,参照以下步骤来完成向导。

1、在“选择模型内容”这一步,选择“从数据库生成”。

2、在“选择您的数据连接”这一步,使用 MoviesDB.mdf 数据连接,为连接设置命名为MoviesDBEntities ,点击“下一步”。

3、在“选择数据库对象”这一步,展开“表”节点,选择“Movies”表,输入命名空间MovieApp.Models ,点击“完成”按钮。

图6、使用实体数据模型向导生成数据库模型

图6、使用实体数据模型向导生成数据库模型

完成向导之后,实体数据模型设计器会打开。设计器会显示Movies数据库表。(图7)

图7、实体数据模型设计器

图7、实体数据模型设计器

在我们继续之前要做一下改动。实体数据向导生成的类名为Movies,用以表示Movies数据库表。由于我们用Movies来指代一部特定的电影,所以我们要把类名由Movies改为Movie(单数形式而不用复数形式)。

在设计器界面上双击类名并把类名改为Movie。做完此改动后,点击“保存”按钮(软盘图标)来生成Movie类。

创建ASP.NET MVC 控制器

下一步是要创建ASP.NET MVC 控制器。控制器负责控制用户与ASP.NET MVC 程序如何进行交互。

参照以下步骤:

1、在解决方案资源管理器中右键点击Controllers文件夹,选择“添加”,"Controller"。

2、在Add Controller对话框中,输入名称HomeController 并将 Add action methods for Create, Update, and Details scenarios复选框勾上 (见图8)

3、点击“Add”按钮,将新的控制器添加到你的项目中。

完成这些步骤以后,代码1的控制器就创建好了。注意它包括了名为Index,Details,Create和Edit方法。在以下章节我们将添加必要的代码来使这些方法正常运作。

图8、增加ASP.NET MVC控制器

图8、增加ASP.NET MVC控制器

代码1 – Controllers\HomeController.cs

列表显示数据库记录

Home控制器中的Index()方法是 ASP.NET MVC 程序的默认方法。当运行一个 ASP.NET MVC 程序时,Index()方法是第一个被调用的控制器方法。

我们将用Index()方法从Movies数据库表显示记录列表。我们将利用先前创建的数据库模型类来取得电影数据记录。

我在代码2中修改了HomeController 类,增加了一个名为_db的私有字段。MoviesDBEntities 类代表了我们的数据模型,我们将用这个类来与我们的数据库进行通信。

在代码2中我还修改了Index()方法。Index()方法用MoviesDBEntities 类来从Movies数据库表中取得所有电影数据记录。表达式 _db.MovieSet.ToList() 从Movies数据库表返回一组电影数据记录。

这组电影传递到视图中。任何获得View()方法通过的东西都会作为视图数据获得视图通过。

代码2– Controllers/HomeController.cs (修改了Index 方法)

Index()方法返回一个名为Index的视图。我们需要创建这个视图来显示电影数据记录的列表。参照以下步骤:

在打开Add View对话框前你要先生成你的项目(选择“生成”,“生成解决方案”菜单)否则在View data class下拉框中你看不到任何类。

1、在代码编辑区中右键点击Index()方法,选择Add View。(见图9)

2、在Add View对话框中,将Create a strongly-typed view 复选框勾上。

3、从View data class下拉框中选择MovieApp.Models.Movie。

4、从View content下拉框中选择List。

5、点击“Add”按钮来创建新的视图。(见图10)

完成后,一个名为Index.aspx的新视图被添加到Views\Home 目录下。Index视图代码见代码3.

图9、从控制器动作中添加视图

图9、从控制器动作中添加视图

图10、用Add View对话框添加新视图

图10、用Add View对话框添加新视图

Index视图在一个HTML表格中显示了Movies数据库表中的电影数据记录。视图包括了一个foreach循环,它遍历每一个由ViewData.Model属性代表的电影。如果你按F5运行你的程序,那将看到如图11的网页。

图11、Index视图

图11、Index视图

新增数据库记录

在上一节我们创建的Index视图中包括了一个用来新增数据库记录的链接。让我们继续来实现逻辑并为新增数据库记录添加必要的视图。

Home 控制器包含了2个名为Create()的方法。第一个Create()方法没有参数。这个Create()方法的重载是用来显示一个新增数据库记录的HTML表单的。

第二个Create()方法有一个FormCollection参数。这个Create()方法的重载,当新增数据库记录的HTML表单post到服务器时就会被调用。注意这个Create()方法有一个AcceptVerbs 特性,用以保证方法只有在执行HTTP POST操作时才会被调用。

这第二个Create()方法在代码4的HomeController类 中被修改过了。新版本的Create()方法接受一个Movie参数并且包含了为插入一个新电影到Movies数据库表的逻辑。

注意Bind特性。因为我们不想从HTML表单中修改电影Id属性,所以我们必须显式排除此属性。

Visual Studio 可以轻松地创建用来新增电影数据记录的表单 (见图12). 参照以下步骤:

  1. 在代码编辑区中右键Create()方法,选择 Add View.
  2. 将复选框Create a strongly-typed view勾上.
  3. View content 下拉框中, 选择Create.
  4. View data class 下拉框中, 选择MovieApp.Models.Movie.
  5. 点击Add 按钮创建新视图.

图12、添加Create视图

图12、添加Create视图

Visual Studio 自动创建了如代码5中的视图.这个视图包含了一个与Movie类各个属性相对应的字段的HTML表单。

由Add View对话框生成的HTML表单生成了Id字段。由于Id列是标识列,所以我们不需要这个字段,你可以安全地删除它。

创建完Create视图之后,你就可以添加新电影数据到数据库了. 按F5运行程序,点击Create New 链接显示如图13的表单. 完成输入并点击提交按钮,新电影数据就会被创建.

注意你会自动得到表单验证. 如果你不输入release date, 或者你输入一个非法的日期, 那么表单会重新显示并且release date那里会被高亮。

图13、新增电影数据记录

图13、新增电影数据记录

修改现有数据记录

在前面的章节, 我们讨论了如何显示和新增数据库记录. 在这最后一节中, 我们来讨论如何修改现有的数据记录.

首先, 我们需要生成Edit表单.既然Visual Studio会自动为我们生成Edit表单,那么这一步就很简单了。在Visual Studio代码编辑区打开HomeController.cs 并参照以下步骤:

  1. 在代码编辑区域右键Edit()方法,选择Add View (见图14).
  2. 复选框Create a strongly-typed view勾选上.
  3. View content 下拉框中, 选择Edit.
  4. View data class 下拉框中, 选择MovieApp.Models.Movie.
  5. 点击Add 按钮添加新视图.

完成这些步骤以后一个名为Edit.aspx的新视图将会被创建到Views\Home 目录下. 这个视图包含了用来修改数据记录的表单。

图14、添加Edit视图

图14、添加Edit视图

Edit 视图包含了一个与Movie类的Id属性对应的字段。你不会想别人修改Id属性的值吧?删掉它吧。

最终,我们需要修改Home控制器以使它支持修改数据库记录。修改后的HomeController类见代码6.

代码6 – Controllers\HomeController.cs (Edit 方法)

在代码6,我在两个Edit()方法都添加了额外的逻辑。 第一个Edit()方法返回与传入方法中的Id参数对应的电影数据记录。第二个重载执行修改数据库中电影记录的方法。

注意你必须取得原电影,然后调用ApplyPropertyChanges()方法来修改数据库中现有的电影。

总结

这篇教程的目的是要让你感受一下创建ASP.NET MVC 程序. 我希望你已经发现了创建ASP.NET MVC web 程序与创建ASP与ASP.NET程序是很相似的。

在这篇教程里, 我们只考察了ASP.NET MVC框架的基本特性。在以后的教程里,我们将钻的更深入到诸如控制器,控制器 action,视图,视图数据和HTML helpers等主题里

原文地址:http://www.asp.net/learn/mvc/tutorial-21-cs.aspx

分享到:
评论

相关推荐

    ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》.doc

    这个教程“在15分钟内用ASP.NET MVC创建一个电影数据库应用程序”旨在引导初学者快速了解并实践MVC模式的基本概念。ASP.NET MVC(Model-View-Controller)是微软提供的一种用于开发Web应用的模式,它将业务逻辑、...

    asp.net mvc教程,15分钟轻松创建

    在创建一个ASP.NET MVC项目时,你需要在Visual Studio中选择“ASP.NET Web 应用程序(.NET Framework)”模板,然后选择MVC模式。这将为你生成一个包含默认文件结构的项目模板,包括Controllers、Models、Views等目录...

    ASP.NET MVC5

    3. **Entity Framework**:ASP.NET MVC5支持Entity Framework,一个对象关系映射(ORM)工具,简化了数据库操作,使得开发者可以使用C#对象直接操作数据库。 4. **razor视图引擎**:Razor视图引擎提供了一种简洁的...

    ASP.NET MVC 5入门指南(中文PDF+源码)

    ASP.NET MVC 5入门指南 (中文PDF+源碼) 1. ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5 - 控制器 3. ASP.NET MVC 5 - 视图 4. ASP.NET MVC 5 - 将数据从控制... ASP.NET MVC 5 - 使用Wijmo MVC 5模板1分钟创建应用

    Asp.Net MVC案例教程

    Asp.Net MVC是一种基于模型-视图-控制器(Model-View-Controller)设计模式的Web应用程序开发框架。它由微软公司推出,旨在提供更灵活、可维护和测试友好的方式来构建动态网站、Web应用程序和服务。本教程将通过一...

    asp.net MVC4 CMS

    ASP.NET MVC4 CMS 是一个基于微软的ASP.NET MVC4框架构建的内容管理系统,它提供了一种高效、可扩展的方式来管理和展示网站内容。MVC(Model-View-Controller)设计模式是其核心,它将应用程序分为三个主要组件:...

    一套通用的Easyui+asp.net mvc开发框架源码

    【标题】"一套通用的Easyui+asp.net mvc开发框架源码"揭示了这是一个用于构建Web应用程序的基础架构,结合了两种技术:Easyui和asp.net MVC5。Easyui是一个基于jQuery的用户界面库,提供了丰富的组件和主题,用于...

    ASP.NET MVC 项目集合.zip

    7. ** Areas**: 大型项目中,ASP.NET MVC通过Areas来组织和管理相关的功能模块,每个Area可以看作是一个独立的小型Web应用,拥有自己的控制器、视图和模型。 8. **依赖注入(Dependency Injection, DI)**: ASP.NET...

    管理系统 mvc asp.net c# demo 示例 代码

    【标题】:“管理系统 MVC ASP.NET C# Demo 示例代码”是一个基于C#编程语言,使用ASP.NET MVC框架构建的管理系统的示例项目。这个项目旨在提供一个直观的学习平台,帮助开发者理解如何在实际环境中运用MVC架构来...

    ASP.NET MVC5 编程实战.pdf

    ASP.NET MVC5 是微软开发的一款用于构建Web应用程序的框架,它结合了模型-视图-控制器(MVC)设计模式、ASP.NET Web Forms组件以及Web API功能,为开发者提供了更灵活、可测试的Web开发解决方案。这本书《ASP.NET ...

    C# asp.net MVC 在线拍照

    2. **C# ASP.NET MVC Controller**:在后端,我们需要创建一个Controller来处理上传的图片。使用`[HttpPost]`装饰器定义POST请求的方法,然后使用`HttpPostedFileBase`类来接收上传的文件。文件会被临时存储在服务器...

    基于ASP.NET MVC项目实例

    本项目实例需要Visual Studio 2010或更高版本来运行,这是一个集成开发环境(IDE),提供了编写、调试和部署ASP.NET MVC应用程序所需的所有工具。 **4. 学习路线** 为了理解这个基于ASP.NET MVC的项目,你可以按照...

    asp.net mvc 上传图片到数据库

    在ASP.NET MVC框架中,将图片上传到数据库是常见的需求,尤其在构建具有用户交互功能的网站时。本文将深入探讨如何使用C#语言来实现这个功能。 首先,我们需要了解ASP.NET MVC的基本概念。ASP.NET MVC(Model-View-...

    ASP.NET MVC C# 优惠券领取微信小程序源码源代码2019完整版

    1、这是一个微信小程序对接淘宝的淘宝客api自助搜索优惠券领取程序,简单易学,有兴趣的欢迎下载 2、后台采用asp.netMvc框架开发、实现了调用阿里妈妈的淘宝客api接口 3、后台框架可支持拓展二次开发一套网站,...

    翻译:使用 Asp.net mvc 15 分钟创建 Movie 数据库应用程序.doc

    翻译:使用 Asp.net mvc 15 分钟创建 Movie 数据库应用程序

    ASP.NET MVC5网站开发之美+CMS范例源代码

    7. **Entity Framework**:ASP.NET MVC5通常配合Entity Framework进行数据访问,这是一个ORM(对象关系映射)框架,使得开发者可以使用面向对象的方式操作数据库,减少对SQL的直接依赖。 8. **CMS范例**:CMS(内容...

    C# ASP.NET MVC WebSocket

    在ASP.NET MVC框架中结合C#语言,我们可以构建高性能、低延迟的实时应用程序,如聊天室、在线游戏、股票交易系统等。 在C# ASP.NET MVC项目中实现WebSocket,我们需要遵循以下步骤: 1. **安装WebSocket支持**: ...

    ASP.NET MVC5 入门 之登录验证

    ASP.NET MVC5 是微软开发的一款用于构建动态网站的框架,它结合了模型-视图-控制器(MVC)设计模式,使开发者能够更高效地构建可维护和测试的Web应用程序。在本入门教程中,我们将重点探讨如何在ASP.NET MVC5中实现...

    ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件

    ASP.NET MVC 是微软提供的一种基于模型-视图-控制器(MVC)模式的Web应用程序开发框架,它在ASP.NET平台上提供了更加灵活和可维护的结构。Linq to SQL 是一种对象关系映射(ORM)技术,它允许开发者使用C#或VB.NET...

Global site tag (gtag.js) - Google Analytics