【MVC 2】MVC+EF框架结构实例:注册ID号验证

来源:互联网 发布:建信养老飞月宝 知乎 编辑:程序博客网 时间:2024/04/27 12:11

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



0 0
原创粉丝点击