ASP.NET MVC5 入门六——通过控制器访问数据

首先,我们要添加一个新的控制器,在解决方案资源管理器的Controllers文件夹右键单击,添加,支架。

image

在对话框中,我们选择下图这个: MVC5 控制器带有 读/写 和 视图。

image

名字就叫做:MoviesController 。model class 选择 MVC5DEMO.Models里面的 Movie。

image

image

数据上下文选择 我们的MovieDBContext。然后点击ADD。

image

恩,悲剧了。我们重新修改Models\Movie.cs文件,把Movies 改成Movie。

image

然后ASP.NET MVC5将会自动创建增删查改(CRUD)的方法(action)和视图(views)。是的,一个完整功能的网站就OK了。我们F5运行看看。

image

当然,没有数据,因为我们没有添加任何数据。接下来我们点击 Create New 添加新的电影条目。

添加电影:

image

image

我们来看看代码

我们刚才添加一个新的controller的那个操作,系统自动添加了哪些文件?

  • 一个 MoviesController.cs 文件在Controllers 文件夹里面
  • 在视图(views)文件夹下面多了一个 Movies  文件夹
  • 在 Movies 文件夹里面,多了Create.cshtml,Delete.cshtml,Details.cshtml Edit.cshtml,和Index.cshtml

显然,视图(movies)里面的那些个 cshtml 文件对应着增删改查和首页等的页面。我们先来看看 MoviesController.cs里面有什么?

image

上面的14行,定义了一个私有的电影数据上下文,可以用它来进行查询,编辑,删除等。

第18行的Index()方法返回的是 数据上下文中 所有的电影列表。

强类型和@model关键字

前几篇的博文,我们要返回一些到前台是用 ViewBag 来封装一些数据。当时说了 ViewBag 是动态对象,你可以随意添加。我们这次演示的是强类型,除了性能上的优点还有如下优点:在编写代码时候有智能提示;编译时候也能检查代码是否有问题。

在上面代码25行的 Details 方法,它有个ID的参数。ID在我们前面也说过:类似于 http://localhost:xxxx/movies/details/1 这里面的那个1就是ID。用来表示电影的序号。当然也可以用  ?id=1  这样来表示。如果找到了对应id的“电影”(27行的代码)就返回 视图(view)同时把movie传进去也就是返回一个强类型的实例。我们看看对应的view(Details.cshtml)里面的代码:

image

第一行就是一句 @model 指令。这个指令的作用是告诉视图模板,这次传过来的对象是什么类型的,上图例子就是传过来一个 models 里面的movie 对象。这样在details.cshtml里面我们就能通过model.titile拿到movie的标题。

image

我们再来看看index视图的代码:

image

这次的 model 是一个实现了IEnumerable 接口的对象。所以我们可以用foreach遍历它:

image

这又是强类型的一个好处,可以用循环遍历!

我们在web.config里面添加了一串连接字符串,指定Movies的数据库是LocalDB数据库里面的Movies.mdf。我们可以在资源管理器里面查看如下图:如果看不见请单击 显示所有文件 按钮:

image

双击 Movies.mdf 文件,会打开 服务器资源管理器,然后我们展开 表 看看:

image

能看到就像以前安装 SQL SERVER一样操作数据库。

image

image

简单的介绍就到这里,明显可以看出,开发工具的进步是越来越振奋人心了!

下一步:优化系统生成的代码。

发表评论

邮箱地址不会被公开。