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

【MVC 2】MVC+EF框架结构实例:注册ID号验证的更多相关文章

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ( ...

  2. MVC中使用EF(2):实现基本的CRUD功能

    MVC中使用EF(2):实现基本的CRUD功能 By  Tom Dykstra |July 30, 2013 Translated by litdwg   Contoso University示例网站 ...

  3. MVC+UnitOfWork+Repository+EF

    MVC+UnitOfWork+Repository+EF UnitOfWork+Repository模式简介: 每次提交数据库都会打开一个连接,造成结果是:多个连接无法共用一个数据库级别的事务,也就无 ...

  4. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  5. 解析ASP.NET Mvc开发之EF延迟加载

    目录: 1)从明源动力到创新工场这一路走来 2)解析ASP.NET WebForm和Mvc开发的区别 3)解析ASP.NET Mvc开发之查询数据实例 ------------------------ ...

  6. 解析ASP.NET Mvc开发之EF延迟加载 分类: ASP.NET 2014-01-04 01:29 4017人阅读 评论(1) 收藏

    目录: 从明源动力到创新工场这一路走来 解析ASP.NET WebForm和Mvc开发的区别 解析ASP.NET 和Mvc开发之查询数据实例 ----------------------------- ...

  7. ASP.NET MVC 5 with EF 6 上传文件

        参考   ASP.NET MVC 5 with EF 6 - Working With Files Rename, Resize, Upload Image (ASP.NET MVC) ASP ...

  8. SpringMVC系列(十五)Spring MVC与Spring整合时实例被创建两次的解决方案以及Spring 的 IOC 容器和 SpringMVC 的 IOC 容器的关系

    一.Spring MVC与Spring整合时实例被创建两次的解决方案 1.问题产生的原因 Spring MVC的配置文件和Spring的配置文件里面都使用了扫描注解<context:compon ...

  9. Spring Mvc 上传文件Demo 实例

    返得利购物. 淘宝.京东500家商城合作,包括全面的商城返利网.注冊就送5元,购物就有返利.随时提现. 同学们,新一轮的返利大潮正在慢慢靠近,让购物都认为自己在赚钱.购物,机票.游戏.酒店旅游,地方特 ...

随机推荐

  1. josephus 问题的算法(转载)

    Josephus 问题: 一群小孩围成一个圈,任意假定一个数 m,从第一个小孩起,顺时针方向数,每数到第 m 个小孩时,该小孩便离开.小孩不断离开,圈子不断缩小,最后剩下的一个小孩便是胜利者.究竟胜利 ...

  2. JSP九大内置对象的作用和用法总结【转】

    JSP九大内置对象的作用和用法总结?     JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.c ...

  3. apache mod_alias模块功能介绍

    我觉得mod_alias根mod_rewrite挺像的,都可以实现url的重写,而mod_alias可以实现简单的url重写的功能 ,而mod_rewrite可以实现比较复杂的重写.mod_alias ...

  4. Lumia 刷机(强刷)Message send failed解决办法

    强刷可以救砖,不需要验证地区code,可以跨刷其它国家/地区的固件,但不是所有机型都可以这样,Lumia 620是支持跨刷的. 看本文你首先要知道使用Nokia Care Suite强刷的步骤,参考从 ...

  5. SQLyog连接MySQL时出现的2058错误解决方法

    配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了. 解决方法:windows 下cmd 登录 mysql -u root -p 登录你的 mysql 数据库,然后执行这条SQL ...

  6. Windows下使用python库 curses遇到错误消息的解决方案

    在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...

  7. SQL数据库移植到ARM板步骤

    SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...

  8. mysql 函数tree状

    // 子节点的查询 CREATE DEFINER = `root`@`%` FUNCTION `getDeptChildList`(rootId BIGINT) RETURNS longtext DE ...

  9. 1-1 编程基础 GCC程序编译

    GCC简介      Linux系统下的gcc是GNU推出的强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平局效率要高20 ...

  10. Asp.Net Core 入门(二)——Startup.cs做了什么

    上篇介绍了Program.cs中Main做了什么,这篇我们来讨论下Startup.cs它又做了什么呢? 我们新建一个Asp.Net Core Mvc项目,先来开一下Startup的代码 public ...