一、前台向后台请求数据

在页面加载时,有时需要对一些表单进行初始化,此时可以利用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方便实现前台与后台的数据交换相关推荐

  1. .net前台ajax,asp.net利用Ajax和Jquery在前台向后台传参数并返回值

    1----------前台 首先需要 Jquer的包 下面是 $(function () { $('#txtUserName').blur(function () { var username = $ ...

  2. 基于API和JSON的API数据交换:如何在API和JSON下实现高效、可靠的数据交换

    作者:禅与计算机程序设计艺术 1.简介 1.1 引言 近年来,随着云计算.大数据.物联网等技术的飞速发展,越来越多的人开始关注数字化转型.在这种转型过程中,企业需要掌握自身的信息资产及其价值,进行信息 ...

  3. json 来实现 php 与 javascript,用 Json 来实现 PHP 与 JavaScript 间数据交换

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 简而论之,不管是xml还是json都是为了方便在客户端与服务器端交互数据的中转站,特别是用于对象型数据, ...

  4. 服务器中pci_frame信号,利用PCI局部总线实现BIadeServer的数据交换

    新一代机架式服务器Blade Server(刀片服务器),应用iSCSI协议,通过TCP/IP实现网络存储,利用Intemet,可将SCSI数据包传到地球上的任何地方. 笔者着眼于刀片服务器的内部构架 ...

  5. dojo从asp.net中获取json数据

    搞来有搞去终于有了个结果,主要是一开始犯了一些低级错误. 对于json不太了解的童鞋,可以看看这个:http://www.dreamdu.com/blog/2008/10/19/json_in_jav ...

  6. ASP.NET中TextBox控件设置ReadOnly=true后台取不到值

    当 TextBox设置了ReadOnly="true" 后,如果在前台为控件添加了值,后台是取不到的,值为"空" 道理没想通,说不清楚微软是出于什么推敲的, 不 ...

  7. ASP.NET 中关GridView里加入CheckBox 在后台获取不到选中状态的问题

    <!-- 在GridView里添加CheckBox选择控件 !--> <ItemTemplate><asp:CheckBox ID="CheckBox" ...

  8. 前台和后台的数据交互

    最近刚刚接手B/S的项目,涉及到了服务器从数据库中查询数据,然后根据数据拼出前台的HTML语句.下面是自己的一段路程. 从最开始自己的一个技术难点,后台拼接完了HTML语句,怎么送到前台呢?下面是关于 ...

  9. JSP中枚举的遍历和Jquery填充后台传入数据

    本菜鸟是新的不能再新的菜鸟了,菜鸟作为实习生进来一家公司上班,两眼一抹黑,只是把自己学到的觉得有用的写下来. 项目背景:Spring+Spring mvc+MyBatis JSP中将枚举遍历显示 1. ...

最新文章

  1. 如何在Linux下安装MySQL8.0
  2. IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法
  3. 浅析php反序列化字符串逃逸
  4. 求数组中数对的最大值
  5. LeetCode-返回倒数第 k 个节点
  6. ubuntu简易部署Python3编写的djangoWeb应用
  7. python自定义函数的关键字_python学习之--自定义函数:
  8. haproxy利用ACL规则封禁自定义IP地址拒绝访问
  9. 使用sentencepiece模型替换词表
  10. selenium安装和下载
  11. 2020汽车电子研究报告
  12. 1. 数理统计---数理统计基本概念
  13. Unity人物模型编辑器,自定义人物模型在线设计。
  14. C语言实现成绩等级判别
  15. 质量检验中那些不为人所知的事儿
  16. JavaFX实现网络对话程序设计(互联网程序设计课程 第2讲)
  17. 2020年国考行测错题集(省级)
  18. 软件工程---总结与导图
  19. 外贸国际邮箱怎么注册?公司邮箱号码大全
  20. findbugs错误类型对照表

热门文章

  1. VBA中Let与Set的区别
  2. Http API笔记
  3. V8 之旅: 垃圾回收器
  4. Linux基本命令 -- grep参数说明及常用用法
  5. 如何在两个服务器之间迁移MySQL数据库
  6. Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
  7. ubuntu18.04管理redis
  8. PHP trim()函数详解
  9. java 课后习题 随机数统计
  10. Windows环境下多个tomcat启动,CATALINA_HOME配置(大坑)