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


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



  • 相关阅读:
    Arduino uno 教程~持续更新~
    Arduino uno LED灯实验
    Arduino uno 引脚说明
    面包板的使用
    数量经济学推荐的Julia教程
    已知一点经纬度和距离,方位角;求另外一点的经纬度
    a recipe kindly provided by Dimas for kikuchi
    发现了拯救“文献多的一团麻”的工具
    matlab中diff的用法
    matlabR2017安装
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010391.html
Copyright © 2020-2023  润新知