MVC简单实现查询列表
来源:互联网 发布:微信美女诱导支付源码 编辑:程序博客网 时间:2024/06/05 10:05
学习理论是更好的体现方式应用于实践中.下边是用MVC框架实现的一个简单查询的例子.
先看一下MVC框架的项目目录文件:
在MVC这个项目中,最为关键的就是这三个文件了。分别为:controllers控制器文件,models模型文件,views视图文件,具体的就不再解释,见上篇博客《MVC架构与三层架构》。
在这里有一些潜在的约定。
1 控制器类命名以contoller结尾:如RegisterController
2控制其类将会产生一个与之同名的在views文件夹下的文件夹:~/View/Register
3控制器里的Action方法,也可在视图文件夹下生成一个同名的视图。如:Index.cshtml
下面用MVC实现一个简单的查询功能。
RegisterController控制器类:
/// <summary> /// 查询 注册用户 列表 /// </summary> /// <returns></returns> public ActionResult Index() { //查询方式:使用Linq语句,查询 数据库里的用户列表数据 //*linq语句 .net编辑器会在编译程序集(中间代码)的时候,将linq语句转化为sql语句 //看起来像返回一个接口的对象,实际则是返回IQueryable接口的子类对象 IQueryable<Models.registerUser> query = from d in db.registerUser where d.isDel == "否" select d; //直接将返回的query转成list集合,并返回查询的集合。 List<Models.registerUser> list = query.ToList();//真正查询数据库的是这一句;原因是EF延迟加载。 //2 将数据结合传给视图 //ViewBag.dataList = list; ViewData["dataList"] = list; return View(); }
view中register文件中index代码:
<html> <head> <title >Index</title> <style type="text/css" > #tbList { border:1px solid #0094ff; width:600px; margin:10px auto; border-collapse :collapse ; } #tbList th,td{ border:1px solid #0094ff; padding :10px; } </style> </head> <body> <table id="tbList"> <tr> <th>ID</th> <th>姓名</th> <th>密码</th> <th>电话</th> <th>邮箱</th> <th>删除</th> <th>修改</th> </tr> <!--遍历Action方法 设置给viewdata的集合数据,生成html代码--> @foreach (registerUser a in ViewData["DataList"] as List<registerUser>) { <tr> <td>@a.userID </td> <td>@a.loginName </td> <td>@a.pwd </td> <td>@a.phone </td> <td>@a.email </td> <td > <a href="/Register/del/@a.userID ">删除</a> </td> <td > <a href="/Register/modify/@a.userID ">修改</a> </td> </tr> } </table> </body></html>
models中添加ADO数据模型即可。
那最后整体实现效果如图:
代码虽不多,但看起来却没有三层那样直观,三层中,你可以直观的看到D层中与数据库交互的部分,清晰明了的看到返回的数据,可是这里不一样,自我感觉这就是MVC的厉害之处吧!重点在于controller文件下的RegisterController控制器类的index方法了。这里涉及到EF延迟加载,官方的理解我不大清楚,但通过逐步调试,和sqlserver profiler的数据追踪发现一个问题就是:
IQueryable<Models.registerUser> query = from d in db.registerUser where d.isDel == "否" select d;
这句看起来类似于sql语句,所以我的第一直观感觉返回的query就已经包含了所查询的结果,其实不然,query实际则是返回IQueryable接口的子类对象,其类型为DbQuery<T>,支持延迟加载:只有当使用到数据的时候,才去查询数据库。此步骤通过监视窗口输入query.tolist()来生成了sql语句。所以真正看到返回结果的代码为:
List<Models.registerUser> list = query.ToList();
0 0
- MVC简单实现查询列表
- MVC +EasyUI 实现简单查询功能
- 使用TT模板+mvc+wcf实现简单查询
- MVC实现全国城市列表
- mvc列表显示筛选 或者模糊查询
- MVC 列表多条件动态查询分页
- php简单实现MVC
- 简单实现MVC
- php简单实现MVC
- C实现简单列表
- Spring MVC入门-----简单实现Spring MVC
- 二级列表简单实现二级列表
- 通讯录 实现简单查询
- ASP.NET MVC 下拉列表实现
- servlet+mvc实现分页显示列表页
- MVC程序的简单实现
- PHP实现简单MVC构想
- MVC实现简单注册页面
- hadoop详细的环境搭建
- Caffe上训练使用自己的数据
- HDU 1466 直线交点情况
- NTP同步配置
- Change Layout in Controllers and Actions in Zend Framework 2
- MVC简单实现查询列表
- 人见人爱A^B_JAVA_HDU2035
- OFBIZ工具类 (转载:chinaUnix.net 帖子作者 :surpass_li )
- JAVA基础补充点
- 梳排序
- RunLoop学习笔记,从CF层面了解由于CFRunLoopMode机制
- 链表逆序
- Source Insight Utils.em里快速宏定义
- zoj 3195 Design the city 【LCA转RMQ】 【求三点最短距离】