Javascript 将表单中的多值字段发布到aspx web表单的高效且轻松的方法

Javascript 将表单中的多值字段发布到aspx web表单的高效且轻松的方法,javascript,asp.net,json,Javascript,Asp.net,Json,好的,我将尝试更好地解释我要问的问题:我有一个aspx webform,我正在使用它创建一个实体,一个简单的数据捕获。该实体可以有多个子实体以一对多关系连接到该实体,并且这些子实体是从同一表单创建的。我不想使用沉重的asp.net组件(如datalist或任何自定义组件)来捕获这些内容。我目前的做法是在页面中打开一个对话框,其中包含一个组合框,其中填充了带有ajax调用的选项。一旦用户选择其中一个条目并保存,我将向javascript集合中添加一个条目,用于保存用户选择并将其显示在客户端的列表中

好的,我将尝试更好地解释我要问的问题:我有一个aspx webform,我正在使用它创建一个实体,一个简单的数据捕获。该实体可以有多个子实体以一对多关系连接到该实体,并且这些子实体是从同一表单创建的。我不想使用沉重的asp.net组件(如datalist或任何自定义组件)来捕获这些内容。我目前的做法是在页面中打开一个对话框,其中包含一个组合框,其中填充了带有ajax调用的选项。一旦用户选择其中一个条目并保存,我将向javascript集合中添加一个条目,用于保存用户选择并将其显示在客户端的列表中。当用户提交我的表单时,我如何提交此集合并在服务器上重新分析它?我正在考虑使用json来存储、序列化然后反序列化。这是个好办法吗

您可以使用以下命令发布它

var postData = function (myobjectinstance){
var objString = JSON.stringify(myobjectinstance);
$.ajax({
    type: 'POST',
    url: 'your url',
    data: objString,
    success: function (){
        alert('did it');
    },
    dataType: 'json'
});
})

然后在带有json.net的服务器上,您可以反序列化json字符串

// You can use JSON.Net
public static void PostMethod(string jsonstring)
{
    var restoredObject  = JsonConvert.DeserializeObject<MyObjectType>(jsonstring)

    // do something with your object
}
//您可以使用JSON.Net
公共静态void PostMethod(字符串jsonstring)
{
var restoredObject=JsonConvert.DeserializeObject(jsonstring)
//对你的目标做点什么
}

或者,如果在页面上使用scriptmanager,则可以将PageMethods与scriptmanager结合使用。有关更多信息,请参见此

但我不想使用ajax调用发布它。我希望它与整个表单一起发布。您可以使用隐藏字段发布json字符串。var hfObject=document.getElementById(“”);hfObject.value=JSON.stringify(myobjectinstance);