导读:本篇博客,将通过一个实例,详细介绍MVC+EF的应用。原理性的东西或者说是进一步的解耦和,请看博客: 【框架结构 3】MVC+EF实体框架—原理解析。在这里,仅用MVC框架和一个EF生成的Model层,来实现ID号注册验证。

一、实例介绍

1.1:结构说明

主要是应用MVC+EF的框架,实现注册ID号的验证,当注册ID已存在时,提示用户。在这里面特别说明的是:

1,实现向数据库的访问是利用的数据持久层Model(通过EF映射),语句也不是以前用的SQL语句,而是linq语句。

2,在这个实例中,MVC框架原有的Model层被废弃不用,利用EF生成了Model层,因为实例的逻辑较简单,所以,在controller里面实现了逻辑处理。

3,本例并没有做过多的解耦和(分层),意不在此。

1.2,结构示例

注意:

1,需要将web.config配置文件中的库链接进行配置,可以参考EF生成了app.config里面的链接。

2,保证MVC的框架版本和引入引用中的Entity Framework的版本一致。

3,在本例中,所用到的Ajax函数,详情请参照博客:【Ajax 3】JavaScript封装Ajax。如果不用Ajax进行服务端请求,也可以在视图中利用表单提交,设置按钮类型为submit。

二、实现步骤

2.1,View(Index)

备注:在Ajax中使用到的Test视图是一个空视图

<span style="font-family:KaiTi_GB2312;font-size:18px;"><html>
<head>
<title>MVCdemo</title>
<script src="~/Ajax.js"></script>
<script type="text/javascript">
function test() {
var strId = document.getElementById("test").value;
ajax({
type: "get",
url: '/Test/Test?strID=' + strId,
success: function (data) {
if (data == "yes") {
document.getElementById("strtext").innerHTML = "该ID正在使用";
}else{
document.getElementById("strtext").innerHTML = "该ID号未被使用";
}
}
});
}
</script>
</head>
<body>
@*<form action="Test" method="post">*@
<label >ID号:</label>
<input type="text" id="test" name="test"/>
<label id="strtext"></label>
<br/><br/> <input id="btnRegister" type="button" value="注册" style="margin-left:50px" onclick="test()" />
@*</form>*@
</body>
</html>
</span>

2.2,controller

<span style="font-family:KaiTi_GB2312;font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCModel;
using System.Data;
using System.Data.SqlClient; namespace TestMvcAndEF.Controllers
{
public class TestController : Controller
{
//
// GET: /Test/ public ActionResult Index()
{
return View();
}
public ActionResult Test(string strID) {
TESTMVCEFEntities db = new TESTMVCEFEntities();
List<basicInfo> list = db.basicInfo.Where(p => p.ID == strID).ToList();
if (list.Count > 0)
{
return Content("yes");
}
else
{
return Content("no");
} }
} }
</span>

2.3,Model层是利用EF直接生成的,这里不做阐述。详情可参照:【框架结构 2】EF实体框架 原理+实例 。

2.4,效果展示

三、个人总结

在实现这个例子的时候,因为在用Ajax的时候,将回调函数写错了,也就是将if语句中的判断==写成了赋值号=,结果导致效果一直都不对,调了很久,这是一个细节上的马虎,却也造成了很大的困扰。解决了就是好的。至此为止,MVC+EF算是告一段落了。原理+示例齐活了,目前没有过多的疑问想要去探索,如果在这一部分还有需要总结学习的,还请读者提点一二,感激不尽。

最新文章

  1. 【分布式】Zookeeper系统模型
  2. mac os x 启用apache 和 php
  3. Bootstrap Fileupload 文件上传
  4. HBase Shell 常见操作
  5. 解决使用IIS5.0配置的FTP服务器,客户端浏览器访问时无法获取目录列表的问题。
  6. 怎样用foreach去修改数组之中的数据
  7. poj 1201 Intervals(差分约束)
  8. Intel HAXM
  9. Poj OpenJudge 百练 1573 Robot Motion
  10. Python Tensorflow下的Word2Vec代码解释
  11. 剑指Offer-二叉树的下一个结点
  12. ConcurrentQueue并发队列
  13. hdu 5510 Bazinga (KMP+暴力标记)
  14. 每天一个linux命令(12):more命令
  15. 通过Comparable来实现对自身的比较
  16. meta标签大全(荐)
  17. java多线程快速入门(二)
  18. C/C++ typedef用法详解(真的很详细)
  19. Android动画知识汇总
  20. [翻译] snapshotViewAfterScreenUpdates

热门文章

  1. css新奇技术及其未来发展
  2. (020)[虚拟系统]Win7网络连接红叉(无解决)
  3. Object类的几个方法
  4. azkaban-web-start.sh启动时出现Table &#39;execution_flows&#39; is marked as crashed and should be repaired Query错误的解决办法(图文详解)
  5. PowerShell~执行策略的介绍
  6. 如何在win7、win8、win8.1上安装使用vb6.0
  7. Kali 2017.3开启VNC远程桌面登录
  8. Idea maven项目不能新建package和class的解决方法
  9. Chrome浏览器安装React developer tools
  10. Vue 几种常见开局方式