导读:本篇博客,将通过一个实例,详细介绍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算是告一段落了。原理+示例齐活了,目前没有过多的疑问想要去探索,如果在这一部分还有需要总结学习的,还请读者提点一二,感激不尽。