快捷搜索:

【Asp.Net MVC 4官方教程】5、从控制器访问数据模型

在本节中,您将创建一个新的MoviesController类,并在这个Controller类里编写代码来取得片子数据,并应用视图模板将数据展示在浏览器里。

在开始下一步前,先Build一下利用法度榜样(天生利用法度榜样)(确保利用法度榜样编译没有问题)

用鼠标右键单击Controller文件夹,并创建一个新的MoviesController节制器。当Build成功后,会呈现下面的选项。设定以下选项:

· 节制器名称:MoviesController.(这是默认值)。

· 模板: MVCController with read/write actions and views, using EntityFramework.

· 模型类:Movie(MvcMovie.Models).

· 数据高低文类:MovieDBContext (MvcMovie.Models).

· 意见:Razor(CSHTML).(默认值)。

单击添加。Visual StudioExpress 会创建以下文件和文件夹:

·项目节制器文件夹中的MoviesController.cs文件。

· 项目视图文件夹下的Movie文件夹。

·在新的Views\Movies文件夹中创建Create.cshtml、 Delete.cshtml、 Details.cshtml、Edit.cshtml和Index.cshtml 文件。

ASP.NET MVC 4 自动创建 CRUD(创建、 读取、 更新和删除) 操作措施,和相关的视图文件(CRUD 自动创建的操作措施和视图文件被称为根基布局文件)。现在您有了可以创建,列表、编辑和删片子Entity 所有的Web功能了。

运行利用法度榜样,经由过程将/Movies追加到浏览器地址栏URL的后面,从而浏览Movies节制器。由于利用法度榜样依附于默认路由 (Global.asax文件中的定义),浏览器哀求http://localhost:xxxxx/Movies将被路由到Movies节制器默认的Index操作措施。换句话说,浏览器哀求http://localhost:xxxxx/Movies等同于浏览器哀求http://localhost:xxxxx/Movies/Index。由于您还没有添加任何内容,以是结果是一个空的片子列表。

创建片子

点击CreateNew链接。输入有关片子的一些具体信息,然后单击Create按钮。

单击Create按钮将使得窗体提交至办事器,同时片子信息也会保存到数据库里,然后您会被重定向到URL/Movies,您可以在列表中看到您刚刚创建的新片子。

创建一些更多的片子数据。同时也可以考试测验点击编辑、具体信息和删除功能的链接。

看一下天生的代码

打开Controllers\MoviesController.cs文件,并找到天生的Index措施。一本部分片子节制器和Index措施如下所示。

public class MoviesController : Controller

{private MovieDBContext db = new MovieDBContext();

//

// GET: /Movies/

public ActionResult Index(){

return View(db.Movies.ToList());}

下面是MoviesController类中实例化片子数据库高低文实例,如前面所述。片子数据库高低文实例可用于查询、编辑和删除的片子。

private MovieDBContext db = new MovieDBContext();

由于Model工具是强类型的(是IEnumerable工具),以是在轮回中的每个item工具的类型是Movie类型。好处之一是,这意味着您可以在代码编译时进行反省,同时在代码编辑器中支持加倍周全的智能感知:

应用SQL Server LocalDB

Entity Framework CodeFirst代码优先,假如检测到不存在一个数据库连接字符串指向了Movies数据库,会自动的创建数据库。在App_Data文件夹中找一下,您可以验证它已经被创建了。假如您看不到Movies.mdf文件,请在办理规划资本治理器对象栏上,单击显示所有文件按钮,单击刷新按钮,然后展开App_Data文件夹。

双击Movies.mdf打开数据库资本治理器,然后展开表文件夹以查看片子表。

注:假如没有显示数据库资本治理器,可以从对象菜单中,选择连接到数据库,然后关闭选择数据源对话框。这样将强制打开数据库资本治理器。

注: 假如您应用的 VWD 或 VisualStudio 2010 可能会看到类似下面的差错信息:

· 由于数据库 'C:\Webs\MVC4\MVCMOVIE\MVCMOVIE\APP_DATA\MOVIES.MDF ' 是 706 版本的,以是无法打开。本办事器支持 655和更早版本的数据库。无法降级支持。

· "InvalidOperationException was unhandled by user code" 所供给的 SqlConnection 没有指定初始数据库。

您必要安装SQL Server 数据对象LocalDB。并验证在前面所指定的MovieDBContext连接字符串。

右键单击Movies表并选择显示表数据以查看您所创建的数据。

右键单击Movies表,选择打开表定义查看EntityFramework代码优先所创建表的表布局。

请留意,若何将Movies表的表布局映射到您早些时刻所创建的Movie类?EntityFramework 代码优先为您自动创建了基于Movie类的表布局。

当您完成操作后,经由过程右键单击MovieDBContext,选择关闭连接关闭该数据库连接。(假如您没有关闭连接,当您下次运行该项目时,可能会呈现差错)。

现在,您可以在简单列表页面里,来显示数据库里的数据了。鄙人一次的教程中,我们会继承看看框架自动天生的其它代码。并添加一个SearchIndex措施和SearchIndex视图,使您可以在数据库中搜索片子了。

转自:http://www.cnblogs.com/powertoolsteam/archive/2013/01/11/2855935.html

您可能还会对下面的文章感兴趣: