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方便实现前台与后台的数据交换

相关文章:

你感兴趣的文章:

标签云: