ASP.NET中使用JSON方便实现前台与后台的数据交换
一、前台向后台请求数据
在页面加载时,有时需要对一些表单进行初始化,此时可以利用JQuery的 get 函数向后台发起异步请求:
/初始化函数
function initSettings() {$.get("?Action=init", function (data) {if (data == "NO") {alert("初始化失败!");}else if (data != null && data != undefined) {var json = JSON.parse(data);setFieldsData(json);}});}//填充表单数据function setFieldsData(json) {$("#userSettings input:text").each(function () {$(this).val(json[$(this).attr("name")]);});}
其中,各表单中含有一个name属性,其值为 数据库 对应的字段名。 后台的响应如下:
if (Action == "init"){string json = "{";DataSet ds = new DataSet(); // 此处以加载用户信息为例ds = DataOperation.DB.Select("select * from USER_USER where USER_ID=" + USER_ID, DataOperation.DB.GetConnType());ds.Dispose();if (ds.Tables[0].Rows.Count > 0){for (int i = 0; i < ds.Tables[0].Columns.Count; i++){json +="\"" + ds.Tables[0].Columns[i].ColumnName+"\":\""+ds.Tables[0].Rows[0][i]+"\",";}json = json.Substring(0, json.Length - 1);json += "}";try{ Response.Write(json);Response.End();}catch (Exception){}}else{Response.Write("NO");Response.End();}}
二、前台向后台提交数据
在表单填好后,保存时需要向后台提交数据,利用JSON 可以很方便的获取各表单数据提交并写入到数据库。前台JS 代码如下:
<pre name="code" class="javascript">$("#saveSettings").click(function () {var json = "{";$("#userSettings input:text").each(function () {json +="\""+$(this).attr("name")+"\":\""+$(this).val()+"\","; // 获取表单值生成 JSON 格式数据});json = json.substring(0, json.length - 1);json += "}";$.post("?Action=save&json=" + json, function (data) {if (data == "NO") {alert("保存失败!"); }if (data == "OK") {alert("保存成功!");}});});</pre><br>
<br>
<pre class="brush:java;"></pre>
<p></p>
<p> 后台响应代码如下:</p>
<p></p>
<pre class="brush:java;">if (Action=="save"){string sqlstr ="update USER_USER set "; string json =Request["json"];JavaScriptSerializer serializer = new JavaScriptSerializer();Dictionary<string, object=""> data = (Dictionary<string, object="">)serializer.DeserializeObject(json);foreach (var item in data){sqlstr += item.Key + " = '" + item.Value + "',";}sqlstr = sqlstr.Substring(0, sqlstr.Length - 1);sqlstr += "where USER_ID=" + USER_ID;DataSet ds = new DataSet();ds = DataOperation.DB.Select("select USER_ID from USER_USER where USER_ID=" + USER_ID , DataOperation.DB.GetConnType());ds.Dispose();if (ds.Tables[0].Rows.Count>0){try{DataOperation.DB.Execnonsql(sqlstr, DataOperation.DB.GetConnType());Response.Write("OK");Response.End();}catch (Exception){}}else{Response.Write("NO");Response.End();}}</string,></string,></pre><br>
上面的代码中,使用了 JavaScriptSerializer 类和 Dictionary 类来解析 JSON 数据,将 JSON 数据解析成字典,方便SQL语句的生成。<br>
<br>
<br>
<p></p>
ASP.NET中使用JSON方便实现前台与后台的数据交换相关推荐
- .net前台ajax,asp.net利用Ajax和Jquery在前台向后台传参数并返回值
1----------前台 首先需要 Jquer的包 下面是 $(function () { $('#txtUserName').blur(function () { var username = $ ...
- 基于API和JSON的API数据交换:如何在API和JSON下实现高效、可靠的数据交换
作者:禅与计算机程序设计艺术 1.简介 1.1 引言 近年来,随着云计算.大数据.物联网等技术的飞速发展,越来越多的人开始关注数字化转型.在这种转型过程中,企业需要掌握自身的信息资产及其价值,进行信息 ...
- json 来实现 php 与 javascript,用 Json 来实现 PHP 与 JavaScript 间数据交换
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 简而论之,不管是xml还是json都是为了方便在客户端与服务器端交互数据的中转站,特别是用于对象型数据, ...
- 服务器中pci_frame信号,利用PCI局部总线实现BIadeServer的数据交换
新一代机架式服务器Blade Server(刀片服务器),应用iSCSI协议,通过TCP/IP实现网络存储,利用Intemet,可将SCSI数据包传到地球上的任何地方. 笔者着眼于刀片服务器的内部构架 ...
- dojo从asp.net中获取json数据
搞来有搞去终于有了个结果,主要是一开始犯了一些低级错误. 对于json不太了解的童鞋,可以看看这个:http://www.dreamdu.com/blog/2008/10/19/json_in_jav ...
- ASP.NET中TextBox控件设置ReadOnly=true后台取不到值
当 TextBox设置了ReadOnly="true" 后,如果在前台为控件添加了值,后台是取不到的,值为"空" 道理没想通,说不清楚微软是出于什么推敲的, 不 ...
- ASP.NET 中关GridView里加入CheckBox 在后台获取不到选中状态的问题
<!-- 在GridView里添加CheckBox选择控件 !--> <ItemTemplate><asp:CheckBox ID="CheckBox" ...
- 前台和后台的数据交互
最近刚刚接手B/S的项目,涉及到了服务器从数据库中查询数据,然后根据数据拼出前台的HTML语句.下面是自己的一段路程. 从最开始自己的一个技术难点,后台拼接完了HTML语句,怎么送到前台呢?下面是关于 ...
- JSP中枚举的遍历和Jquery填充后台传入数据
本菜鸟是新的不能再新的菜鸟了,菜鸟作为实习生进来一家公司上班,两眼一抹黑,只是把自己学到的觉得有用的写下来. 项目背景:Spring+Spring mvc+MyBatis JSP中将枚举遍历显示 1. ...
最新文章
- 如何在Linux下安装MySQL8.0
- IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法
- 浅析php反序列化字符串逃逸
- 求数组中数对的最大值
- LeetCode-返回倒数第 k 个节点
- ubuntu简易部署Python3编写的djangoWeb应用
- python自定义函数的关键字_python学习之--自定义函数:
- haproxy利用ACL规则封禁自定义IP地址拒绝访问
- 使用sentencepiece模型替换词表
- selenium安装和下载
- 2020汽车电子研究报告
- 1. 数理统计---数理统计基本概念
- Unity人物模型编辑器,自定义人物模型在线设计。
- C语言实现成绩等级判别
- 质量检验中那些不为人所知的事儿
- JavaFX实现网络对话程序设计(互联网程序设计课程 第2讲)
- 2020年国考行测错题集(省级)
- 软件工程---总结与导图
- 外贸国际邮箱怎么注册?公司邮箱号码大全
- findbugs错误类型对照表