MVC $.Ajax()+Json实现数据库访问并显示数据
我们在使用搜索引擎时经常会看到这样一个效果
在输出输入相关文字时会有与之对应的相关提醒,作为一个MVC初学者我也做了一个简单版的“搜索工具”,分享给初学mvc和ajax的童鞋(各位大神勿喷),也加深我对代码的理解
第一部数据部分:数据库部分,你可以自己建一张表,然后加几条数据就可以了,我在此用的是我自己做的一个测试系统的试题表
第二部 就是代码编写部分了,mvc Model部分我没有运用Linq或EF,而是运用了DBhelp类访问数据库,这样更易于初学者理解,下图Topic为上图的表类
后台代码:DBhelp相信大家都会写,这里我就不多说了
Model:Topic
public class Topic
{
public int T_ID { get; set; }
public string T_Title { get; set; }
public string T_AnswerA { get; set; }
public string T_AnswerB { get; set; }
public string T_AnswerC { get; set; }
public string T_AnswerD { get; set; }
public string T_Answer { get; set; }
public int C_CourseID { get; set; }
public string C_CourseName { get; set; }
}
Controllers代码
Models.DBhelp help = new Models.DBhelp();
DataTable table = new DataTable();
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(int? Tid)
{
table = help.getDataTable(string.Format(@"select * from Topic inner join Course
on Topic.C_CourseID=Course.C_C_CourseID
where T_ID='{0}'", Tid));
if (table.Rows.Count > )
{
List<Models.Topic> list = new List<Models.Topic>();
foreach (DataRow item in table.Rows)
{
Models.Topic T = new Models.Topic();
T.T_ID = Convert.ToInt32(item["T_ID"]);
T.T_Title = item["T_Title"].ToString();
T.T_AnswerA = item["T_AnswerA"].ToString();
T.T_AnswerB = item["T_AnswerB"].ToString();
T.T_AnswerC = item["T_AnswerC"].ToString();
T.T_AnswerD = item["T_AnswerD"].ToString();
T.T_Answer = item["T_Answer"].ToString();
T.C_CourseID = Convert.ToInt32(item["C_CourseID"]);
T.C_CourseName = item["C_CourseName"].ToString();
list.Add(T);
}
/*如果有多张表最好将集合转换为JsonResult对象*/
//JsonResult json = new JsonResult
//{
// Data = list
//};
return Json(list);
}
else
{
return Json("No");
}
}
前台代码
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.validate-vsdoc.js"></script>
<script type="text/javascript">
$(function () {
$("#text").bind("keyup", function () {
if ($("#text").val() == "") {
$("#showDiv").empty();//清空标记类容
return;
} else {
$.ajax({
type: "post",
url: "/Home/Index",
data:
{
Tid: $("#text").val()
},
datatype: "json",
success: function (data) {
if (data == "No") {
$("#showDiv").text("非法数据");
}
else {
var strHTML = "";
$("#showDiv").empty();
//用$.each方法解析获取到的Json
//$.each(data, function (i, Que) {
// strHTML += "编号" + Que["T_ID"] + "<br/>";
// strHTML += "科目" + Que["C_CourseName"] + "题目" + Que["T_Title"] + "<br/>";
// strHTML += "A:" + Que["T_AnswerA"] + "<br/>";
// strHTML += "B:" + Que["T_AnswerB"] + "<br/>";
// strHTML += "C:" + Que["T_AnswerC"] + "<br/>";
// strHTML += "D:" + Que["T_AnswerD"] + "<br/>";
// strHTML += "答案:" + Que["T_Answer"] + "<br/>";
//});
//用for循环解析获取到的Json
for (var i = , length = data.length; i < length; i++) {;
strHTML += "编号" + data[i].T_ID + "<br/>";
strHTML += "科目" + data[i].C_CourseName + "\
<br/>题目" + data[i].T_Title + "<br/>";
strHTML += "A:" + data[i].T_AnswerA + "<br/>";
strHTML += "B:" + data[i].T_AnswerB + "<br/>";
strHTML += "C:" + data[i].T_AnswerC + "<br/>";
strHTML += "D:" + data[i].T_AnswerD + "<br/>";
strHTML += "答案:" + data[i].T_Answer + "<br/>";
}
$("#showDiv").html(strHTML);
}
}
});
}
})
});
</script>
<title>Index</title>
</head>
<body>
<div id="textDiv">
<input type="text" id="text" />
</div>
<br />
<div id="showDiv"></div>
</body>
</html>
完成后的效果是这样的,输入对应的试题编号,就会无刷新的显示对应试题信息
当然你会说这个效果与搜索引擎的效果相差甚远,但是当你仔细分析两者之间的原理时,你会发现这就是一个简单的搜索引擎效果,任何东西都是由简到复杂的,在学习编程时,我们只有弄懂一段段简单的代码的原理,才能在实践过程中更好的去理解和操作代码
MVC $.Ajax()+Json实现数据库访问并显示数据的更多相关文章
- jquery ajax json简单的分页,模拟数据,没有封装,只显示原理
简单的分页,模拟数据,没有封装,显示原理,大家有兴趣可以自己封装,这里只是个原理过程,真正的分页也差不多是这个原理,只是请求数据不太一样,html部分: <!TOCTYPE HTML> & ...
- Highcharts AJAX JSON JQuery 实现动态数据交互显示图表 柱形图
http://my.oschina.net/xshuai/blog/345117?fromerr=hEXYMdR0 http://www.oschina.net/code/snippet_144464 ...
- 初探Node-red结合阿里云数据库,定时显示数据
在最近的项目中,隔壁项目组推荐了一个很好的基于node.js开源IOT框架Node-Red,它的优点很明显,使用可视化编程的方式,实现了大部分需要在物联网领域的技术,而且能很好的对接各个云平台,快捷部 ...
- Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录
项目需求:这里暂且叫A公司吧,A公司有一套人事管理软件,需要与我们公司的软件做人员信息同步,A公司用的是SQL server数据库,我们公司用的Oracle,接口都不会开发(一万句"fuck ...
- 基于MVC4+EF5.0+Ajax+Json+CSS3的简单注册页面(get&post)
使用mvc4可以很快速的创建页面,但封装的过多,难免会有些性能上的问题.所以基于此,通过使用简单的手写html,加ajax,json来创建一个注册页面,会比较干净,简洁. 本项目的环境是MVC4+EF ...
- Django+Ajax+Mysql实现数据库数据的展示
最近老师让搞一个系统,仅仅展示一下数据库的数据 在做海底捞时,是交接的师兄的项目,用的语言是java,框架是SSM(Spring.SpringMVC.MyBatis),这次我准备用Python写,前端 ...
- AJAX && JSON之讲解
Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现.虽然名字中包含XML,但Ajax通讯与数据格式无关 ...
- Django 之Ajax&Json&CORS&同源策略&Jsonp用法
什么是Json 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集 ...
- jQuery +ajax +json+实现分页
正文 首先我们创建一般处理程序,来读取数据库中内容,得到返回值. 创建文件,GetData.ashx. 我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据 代码 ...
随机推荐
- 图解-安卓中调用OpenGL
游戏开发中经常使用到OpenGL,当然很多人都喜欢直接用现有的游戏引擎,但相信了解的更多对你没有坏处 安卓开发中,采用的OpenGL ex2的规范,前几天看了下这个规范,整体上难度比1.0规范难度加大 ...
- maven tomcat插件上传项目到tomcat服务器报错SEVERE: One or more listeners failed to start.
以前觉了maven依赖设置很简单,就是将手动导入jar包转化为自动下载导入 但发现的一个问题, 在使用maven插件tomcat打包上传工具时 tomcat-maven-plugin <buil ...
- 在 Ubuntu下安装 labelImg (标数据用)
安装 SIP 下载 SIP 并解压 : $ sudo python configure.py $ make $ sudo make install 安装 依赖库 $ sudo apt-get ins ...
- 深入理解Java虚拟机:垃圾收集器与内存分配策略
目录 3.2 对象已死吗 判断一个对象是否可被回收 引用类型 finalize() 回收方法区 3.3. 垃圾收集算法 1.Mark-Sweep(标记-清除)算法 2.Copying(复制)算法 3. ...
- ruby实现下订单后给客户发送手机序列号
还有半个小时下班,写点今天做的功能,打发打发时间. 两个类,订单类和序列号类. 订单类 class GroupOrder include Mongoid::Document include Mongo ...
- [CQOI 2018]交错序列
Description 题库链接 定义长度为 \(n\) 的"交错序列"为:长度为 \(n\) 序列中仅含 \(0,1\) 且没有相邻的 \(1\) .给出 \(a,b\) ,假设 ...
- @Resource和@Autowired区别
@Resource和@Autowired都是做bean的注入时使用 历史: @Autowired 属于Spring的注解 org.springframework.beans.facto ...
- mybatis之@Select、@Insert、@Delete、@Param
之前学习的时候,看到别人在使用mybatis时,用到@Select.@Insert.@Delete.@Param这几个注解,故楼主研究了一下,在这里与大家分享 当使用这几个注解的时候,可以省去写Map ...
- MD5 加盐(Java)
本文转载自:https://blog.csdn.net/dingsai88/article/details/51637977 jar:https://pan.baidu.com/s/1-8JaRoUt ...
- mac下安装MySQL【转】
转:http://www.jb51.net/article/103841.htm 1.官网下载 MySQL v5.7官方正式版下载地址:http://www.jb51.net/softs/451120 ...