学习ASP .NET MVC5官方教程总结(六)通过控制器访问模型的数据

点击“Create”按钮会将数据提交到服务器,服务器将电影信息出入数据库。再次查看/Movies地址,在列表中就能看到我们新添加的电影了。

打开文件Controllers\MoviesController,检查生成的Index方法。MoviesController的包含Index方法的部分代码如下:

private MovieDBContext db = new MovieDBContext();// GET: /Movies/public ActionResult Index(){return View(db.Movies.ToList());}

在MovieController类中,包含了MovieDBContext类的实例,你可以使用它进行查询、编辑和删除电影。

MoviesController的Index方法将返回所有数据库中的电影数据,,然后将结果传递给Index视图。

MoviesController类和视图的时候使用了这种方式。

检查Controllers\MoviesController.cs文件中的Details方法,下面是Detais方法的部分代码:

public ActionResult Details(int? id){if (id == null){return new HttpStatusCodeResult(HttpStatusCode.BadRequest);}Movie movie = db.Movies.Find(id);if (movie == null){return HttpNotFound();}return View(movie);}

id可以通过路由数据或者查询字符串的方式传递给控制器。

如果找到了电影信息,一个电影的模型就会传递给Details视图。检查一下Views\Movies\Details.cshtml文件的内容。

通过文件顶部的@model语句,你就知道这个视图所期望的什么类型的对象。当你创建了电影控制器,VisualStudio将会自动在Details.cshtml文件顶部包含如下语句:

@model MvcMovie.Models.Movie

Model对象传递给DisplayNameFor和DisplayForHTML帮助方法。Create和Edit方法也传递了一个Model给视图,此处不再多讲。

public ActionResult Index(){return View(db.Movies.ToList());}

VisualStudio自动在Index.cshtml文件顶部添加了@model语句:

@model IEnumerable<MvcMovie.Models.Movie>

foreach语句循环强类型Model中的每个电影对象。

@foreach (var item in Model) {<tr><td>@Html.DisplayFor(modelItem => item.Title)</td><td>@Html.DisplayFor(modelItem => item.ReleaseDate)</td><td>@Html.DisplayFor(modelItem => item.Genre)</td><td>@Html.DisplayFor(modelItem => item.Price)</td><td>@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |@Html.ActionLink("Details", "Details", new { id=item.ID }) |@Html.ActionLink("Delete", "Delete", new { id=item.ID })</td></tr>}

item对象都是Movie类型的。这意味着你的代码具有更好的编译时检查和完整的智能感知支持。

App_Data文件夹)。

双击Movies.mdf文件,打开服务器资源管理器,然后展开Tables目录查看Movies数据表。

这章就讲这里了,下一章我们讲Edit视图代码。

在那里,有我们特有的记忆,亲情之忆、

学习ASP .NET MVC5官方教程总结(六)通过控制器访问模型的数据

相关文章:

你感兴趣的文章:

标签云: