ASP.NET MVC3与ExtJS结合建站笔记(要点)

来源:互联网 发布:sql临时表 编辑:程序博客网 时间:2024/06/01 12:12

1.  MVC篇

   MVC个人理解就是利用Model——View——Controller三层表现架构来实现网站的三层架构Data(数据层)——BLL(业务逻辑层)——View(表现层)的功能。即MVC是实现网站三层架构的一种方式。并不是单纯的一一对应关系。

     A.   Model
 a.1. 通过以下步骤添加一个新的 ADO.NET 实体数据模型 项:

    a. 右键点击项目名称, 选择 添加, 然后点击 新建项 选项.

    b. 在 已安装的模板 窗格中选择 数据, 然后选择 ADO.NET 实体数据模型 模板.

    c. 在名称中输入 CSMSModel.edmx.

  这时实体数据模型向导会出现.

  2. 在 选择模型内容 对话框中, 选择 从数据库生成, 然后点击 下一步.

  3. 选择 新建连接. 在 连接属性 对话框中, 在 服务器名称 文本框中输入服务器名 (例如: (localdb)\v11.0). 选择验证方法, 附

        加本地数据库文件, 然后点击 确定. 此时 选择您的数据连接 对话框已经根据你的数据库连接设定更新了. 确保将  

          Web.Config中的实体连接设置另存为 选项被选中,然后点击 下一步.

  4. 在 选择数据库对象 对话框中, 通过选择 表(视图) 选项选中所有表(视图).

  5. 选中 确定所生成对象名称的单复数形式(这里我没选) 和 在模型中加入外键列 选项.


  该向导将执行下列操作:

  • 添加对 System.Data.EntitySystem.Runtime.Serialization, 和 System.Security 程序集的引用.
  • 生成一个CSMSModel.edmx 文件, 该文件定义了概念模型, 存储模型, 和他们之间的映射. 将 .edmx 文件的 生成操作 属
  • 性设置为 嵌入到输出程序集中, 故生成的元数据文件将被嵌入到程序集中.
  • 创建一个包括连接字符串的Web.Config 文件. 对象层的代码将实体类型和上下文(由 System.Data.Entity.DbContext 或
  •  System.Data.ObjectContext 引入)定义为公共语言运行库(CLR)中的类型. 在下一步中, 你将用 DbContext Generator 模
  • 板代替默认生成对对象层代码.

  6. 编译项目.





b.用DbContext生成器模版生成对象层代码

        EF 工具生成概念模型时, 同时也会生成对象层代码. 默认的 生成的对象层代码包括以下内容: 继承了 EntityObject 的可多

识别(persistence aware)的实体类型的定义, 和一个继承了 ObjectContext 的上下文类型, 其中包括对应每个模型的类别

ObjectSet<TEntity> 类型的属性.


       这里, 我将使用以下内容代替默认生成的代码: 持久未知的(persistence ignorant)实体类型, 也叫POCO("plain-old" CLR

 objects), 和一个继承自 DbContext, 且包含了 DbSet<TEntity> 类型的属性的上下文类型. DbContext 和 DbSet<TEntity> 包含

了 ObjectContext 和 ObjectSet<TEntity> 类型, 和一个可以执行大多数常见任务的简化 API. 从 EF 4.1 开始, 微软推荐我们使

用 DbContext API.


1. 在实体设计器中打开 .edmx 文件.

2. 在实体设计器的空白区域右击, 然后选择 添加代码生成项.

  在 添加新项 对话框中, 选择 联机模板, 然后在 搜索联机模板 文本框中输入 DbContext Generator.

  为你的模板选择适当的版本 (如果你想使用 EF 5.0 Beta 1 的话则选择 5.0).

  输入模板名称, 然后点确定.

  向导将执行以下操作:

    1.禁用 .edmx 文件中默认的代码生成器, 并将它的 复制到输出目录 属性设置为 不复制.

    2.创建 xxxModel.Context.tt 和 xxxModel.tt 项目文件. 在 xxxModel.Context.tt 文件下, 有一个定义了继续

DbContext 的上下文类型的文件. 而在 SchoolModel.tt 文件下, 会有一系列定义了 POCO 实体模型的文件.

  如果你创建的是 Visual Basic 项目, 你可能需要在解决方案资源管理器中选中 显示所有文件 才能看到项目中的所

有文件.

PS:如果用的是VS2012,则可省略b步骤,即vs2012直接生成POCO和DbContext类型的代码,如图:



最终结果如图:

DbContext


POCO


  B. Controller

     因为前台用ExtJS,所以Controller的方法返回类型为JsonResult,但此处用MVC原生的ActionResult做返回类型演示,在ExtJS篇中会有JsonResult的代码(与ActionResult类似)。

    真正的业务逻辑层的实现是自定义的方法CRUD(creat,read,update,delete)

表的查询:

按条件查询:


Controller里调用查询方法,返回给视图。


               未完待续。。。

      

2.  ExtJS篇

将controller里的检索到的数据通过Json数据格式返回给ExtJS前台
                 controller里的代码如下:

ExtJS中要通过其中的Model&&Store&&Grid结合将数据显示出来
Model:

Store:
通过reader请求controller内数据,映射到Student model中。
Grid:

加载StudentStore显示数据

ps:store也可自定义数据供grid使用,代码如下:


未完待续。。。

原创粉丝点击