`
tansitongba
  • 浏览: 484165 次
文章分类
社区版块
存档分类
最新评论

显示数据库表中的数据

阅读更多

本教程的目的是向你介绍如何在ASP.NET MVC程序里显示一个数据库数据的HTML表格。首先,介绍了如何直接在视图中格式化数据库记录。接着,介绍了格式化数据库记录时如何利用 Partial。

创建模型类

我们将显示 Movies 数据库表中的记录集。Movies 数据库表包含下面的列:

列名称

数据类型

允许空值

Id Int False
Title Nvarchar(200) False
Director NVarchar(50) False
DateReleased DateTime False

为了在我们的ASP.NET MVC程序中表示Movies表,我们需要创建一个模型类。在这篇教程中,我们使用 Microsoft Entity Framework 来创建。

然而, 明白很重要的一点是,你可以在ASP.NET MVC程序中使用各种不同的技术来与数据库交互,包括 LINQ to SQL, NHibernate, 或者ADO.NET.

参照以下步骤启动实体数据模型向导:

  1. 在解决方案资源管理器上右键 Models 文件夹,选择“添加”,“新建项”。
  2. 选择“数据”分类,选择 ADO.NET Entity Data Model模板。
  3. 为你的数据模型命名为 MoviesDBModel.edmx 点击“添加”按钮。

点击“添加”按钮后,将出现“实体数据模型向导”对话框 (见图 1). 参照以下步骤完成向导:

  1. 选择模型对象 这一步, 选择从数据库生成 选项.
  2. 选择你的数据连接 这一步,使用 MoviesDB.mdf 数据连接并命名为 MoviesDBEntities。点击下一步 按钮。
  3. 选择你的数据库对象 这一步, 展开“表”节点, 选择 Movies 表。输入命名空间 Models点击完成按钮。

图01:创建 LINQ to SQL 类(点击查看完整大小)

完成“实体数据模型向导”后,“实体数据模型设计器”出现。设计器将显示 Movies实体 (见图 2).

图02: 实体数据模型设计器(点击查看完整大小)

在继续之前我们要做点小改动。实体数据向导生成的模型类名为 Movies 用以表示 Movies数据库表。由于我们用 Movies 类来表示一个特定的电影,所以我们要把类名改为 Movie而不是 Movies (单数而不是复数).

在设计器界面上双击类名并将类名从Movies改为 Movie。更改完后,点击保存按钮 (软盘图标)来生成 Movie 类。

创建Movies 控制器

既然我们已经可以表示我们的数据库记录了,那么就可以创建控制器来返回电影的集合了。在 Visual Studio 解决方案资源管理器窗口中,右键点击 Controllers 文件夹并选择菜单项 添加, Controller (见图3).

图03:添加 Controller 菜单(点击查看完整大小)

Add Controller 对话框显示后, 输入控制器名 MovieController (见图4). 点击 Add 按钮添加新控制器。

图04: Add Controller 对话框(点击查看完整大小)


我们需要修改Movie控制器暴露的 Index() 操作以返回一组数据库记录。见代码1。

代码1 – Controllers/MovieController.cs

在代码 1, MoviesDBEntities 类用来表示 MoviesDB 数据库。 要使用这个类,你需要导入 MvcApplication1.Models 命名空间:

using MvcApplication1.Models;

表达式entities.MovieSet.ToList() 从Movies数据库表返回一组所有的电影。

创建视图

在HTML表格显示一组数据库记录的最简单方法是利用Visual Studio提供的脚手架。

选择菜单项 生成, 生成解决方案 运行你的程序。在打开 Add View 对话框之前你必须生成你的程序,否则你的数据类不会显示在对话框中。

在 Index() 操作上右键,选择菜单项 Add View (见图 5).

图05: 添加视图(点击查看完整大小)

Add View 对话框中, 勾选上 Create a strongly-typed view. 选择 Movie 类作为 view data class. 选择 List作为 view content (见图 6). 选择这些选项将生成一个显示一组电影的强类型视图。

图06: Add View 对话框(点击查看完整大小)

点击Add 按钮,代码 2 的视图自动生成。这个视图包含了需要遍历movies集合和显示movie每个属性的代码。

代码2 – Views/Movie/Index.aspx

你可以选择菜单项 调试,启动调试 (或按F5建)来运行你的程序。运行程序将启动 Internet Explorer。如果你导航至 /Movie URL 那么你会看到如图7的页面。

图07: 电影表(点击查看完整大小)

如果你不喜欢图7中关于数据库表格的样式那么你可以简单地修改 Index 视图。例如,你可以将 DateReleased表头改为 Date Released

用Partial创建模板

当视图变得太复杂,将视图分解为部分是个好主意。使用partials使你的视图更易懂且更易维护。我们将创建一个partial作为模板来格式化每个 movie数据库记录。

参照以下步骤创建 partial:

  1. 右键点击 Views/Movie 文件夹选择菜单项 Add View.
  2. 勾选 Create a partial view (.ascx).
  3. 命名为 MovieTemplate.
  4. 勾选 Create a strongly-typed view.
  5. view data class 中选择Movie类。
  6. view content 选择Empty。
  7. 点击Add 按钮添加 partial 到你的项目中。

完成这些步骤后,修改 MovieTemplate partial使它如代码 3.

代码3 – Views/Movie/MovieTemplate.ascx

代码3 中的partial包含一行记录的模板。

代码4中修改后的Index 视图使用 MovieTemplate partial.

代码4 – Views/Movie/Index.aspx

代码4中的视图包含一个 foreach 循环,遍历所有movies。对于每一个movie,MovieTemplate partial 用来格式化电影。MovieTemplate 通过调用 RenderPartial() helper方法呈现。

修改后的Index 视图呈现了完全相同的数据库记录的HTML表。然而,视图却被大大地改变了。

RenderPartial() 方法与其它大多数 helper方法不同,因为它不返回一个字符串。因此,你必须用<% Html.RenderPartial(); %> 而不是<%= Html.RenderPartial(); %>来调用RenderPartial()方法。

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics