如果前面和后面的值太多,写起来会有很多麻烦,而且很容易出错。下面是一组使用标签属性传递值的方法,后台值和前端绑定都大大简化了。

首先,将JSON对象转换为字符串。

复制代码代码如下所示:

扩展({

将JSON对象转换为一个类似于jQuery的字符串,而不使用此方法{ }

tojsonstring:功能(对象){

如果(对象= NULL)

返回;

变量类型=类型的对象;

如果('object= =型){

如果(array = =对象构造函数的类型= 'array。);

如果(regexp = =对象构造函数的类型= 'regexp。);

其他类型= 'object;

}

开关(类型){

case'undefined:

case'unknown:

返回;

打破;

case'function:

case'boolean:

case'regexp:

返回object.tostring();

打破;

case'number:

返回系统(对象)object.tostring():'null;

打破;

case'string:

回归(+ object.replace / / G( | )、 1美元( / | R | T/G)、功能(更换){

var =参数{ 0 };

返回(a = ):(a = r r):(A =T)

}+;

打破;

case'object:

如果(物体= null)return'null;

var结果{ };

对于(对象中的var属性){

VaR值=美元。tojsonstring(对象{财产});

如果(值)!= =未定义(美元。tojsonstring)results.push(财产)+价值+ ':');

}

返回{+ results.join()+};

打破;

case'array:

var结果{ };

对于(var i = 0;i < object.length;i++){

VaR值=美元。tojsonstring(对象{我});

如果(值)!= =未定义)results.push(价值);

}

返回{+ results.join()+};

打破;

}

}

});



两。创建一个数据容器对象{用于将前景控制值绑定到背景}

复制代码代码如下所示:

Var DataClass = { {

创建:函数(){

返回函数(){

This.MyInit.apply(这个参数); / / / /参数的构造函数的参数来创建一系列的系统名称的对象不能是错误的

}

}

}

无功mydatapack = dataclass.create();

mydatapack.prototype = { {

初始化

MyInit:功能(URL、操作、参数){

this.data =新(对象); / /所有的数据的能力

无功位数据检=新的对象();

bdata.url = URL; / /地址

bdata.operation =操作; / /操作

bdata.params =参数; / /参数

this.data.basicdata =位数据检; / /基本数据

},

/ /添加数据如:增值(obj

附加价值:功能(P,obj){

这一数据{ } = P OBJ;

},

获取控制项的所有值,并写入数据。

getvaluesetdata:功能(togname){

var =对象(值);值集

$({个子标记=++ togname })(,(功能){

如果控件输入的类型

如果(this.localname = =输入){

如果文本控件

如果(this.type = =文本| | this.type =隐藏){

{这个ID值。} = this.value;

}

如果(this.type = ={…)

}

/……

}

如果(this.localname = ={…)

}

/ / ................

});

这个数据togname } { =值; / /添加到数据集

},

/ /价值:getValue(数据)

GetValue:功能(P){

返回这个数据{ };

},

获取或设置URL

GetUrl:功能(URL){

如果(URL)

这个数据。数据{URL=网址;

其他的

退货。数据。数据{URL};

}

,

将值放入对象数据字符串中

getjsondata:函数(){

返回的。tojsonstring(的数据);

}

}



三,创建一个绑定的前端数据对象{用于读取在后台传递的值,并绑定到首页}

复制代码代码如下所示:

Var MyDataBinder = { {

将数据绑定到控件数据:标记:数据标签

函数(数据,标签){

无功mjson = $ parseJSON(数据);

只有标签绑定标签

$({ BindTag =+标签+})(,(功能){

如果(this.localname = =输入){

如果(mjson {我}) / /如果后台价值

$(这)。Attr(价值

}

如果(this.localname = ={…)

}

/…

});

}

};



四。使用的例子



前台HTML:

复制代码代码如下所示:





一

二

三

















前台JS:

复制代码代码如下所示:

利用====================================== / / ====================实例

Var MyDataPack =新mydatapack(handler1 .ashx

mydatapack.getvaluesetdata(个子标记); / /控制数据写入对象个子标记带标签的控制值

通过背景检查 / / -------------------接待

美元。后(MyDataPack.getUrl(),mydatapack.getjsondata(),功能(数据){)

/ / -------------------绑定到前台开发背景值

MyDataBinder . Bind(数据绑定); / / 与绑定控件标签

});



uff1a后台

复制代码代码如下所示:

public void ProcessRequest(HttpContext上下文)

{

context.response.contenttype =文本/平原;

以============================================= / / ====================价值

因为背景/传过来的类型是字符串的JSON对象转换所有数据作为一个参数后。

var值=上下文。请求表单{ 0 };

需要引入 / /装配system.web.extensions.dll

javascriptserializer _jsserializer =新javascriptserializer();

JSON对象转换字符串对象字典

词典> DIC = _jsserializer。反序列化> >(值);

现在它包含了所有的值如何使用如何使用。

字符串inp_2 DIC { =个子标记

/ / =====================传递到前============================================

dic2 =新字典(词典);

dic2。添加(inp_1

dic2。添加(inp_2

dic2。添加(inp_3

context.response.write(_jsserializer.serialize(dic2));

}



如果您在使用JSON之前对背景值有清楚的了解,请允许我留言。