我会做的是将结果作为KeyValuePair对象的数组,然后将序列化为JSON。所以,你创建的JavaScript对象类型,像这样:
function KeyValuePair(key, value){
this.Key = key;
this.Value = value;
}
,那么你会建立KeyValuePairs的数组,像这样:
//This array is declared in the global scope
var ValueArray = new Array();
function someFunction(){
//this assumes that the key and value variables are created earlier in the function
var valueToStore = new KeyValuePair(key, value);
ValueArray[ValueArray.length] = valueToStore;
}
因此,在当你与你所有的检查,你会做点使用json2 serializer将数组序列化为json以存储在隐藏字段中。
var jsonToSaveToHiddenField = JSON.stringify(ValueArray);
//Logic to store resulting json and trigger the serverside evaluation here
在服务器端,您将使用JavascriptSerializer将您的json反序列化为一个KeyValuePairs数组。这是msdn文档:JavaScriptSerializer Class Reference
所以这种方法只需要一个隐藏字段。所以你不需要动态地创建它,这应该可以简化服务器端的检索。
上面应该用最少的更改工作,但我没有通过编译器运行,所以可能会有一些小的语法错误预设。