附上代码:
var frameid = $('iframe').attr('id');
var aData = $($($('#' + frameid).contents()).find('#form1')[0]).find("input, select, textarea").not("#__VIEWSTATEGENERATOR").serialize();
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
url: "cms001Detail.aspx/saveRecord",
data: JSON.stringify(aData),
success: function (Record) {
alert('success');
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(JSON.stringify(aData));
alert(xhr.responseText);
//Ext.Msg.alert(xhr.responseText, thrownError);
}
});
后面的内部代码:
public static void saveRecord(List<string> aData)
{
try
{
Dictionary<String, EntityObject> param = new Dictionary<string, EntityObject>();
users users = new users();
users.id = "save3";
foreach (object items in aData)
{
Console.WriteLine(items);
}
//users.user_login = aData[0].ToString();
////users.password = password;
//DateTime passExpDate;
//if (DateTime.TryParse(passwordExpiryDate, out passExpDate))
//{
// users.pwd_exp_date = DateTime.Parse(passwordExpiryDate);
//};
//users.name = fullName;
//users.user_type = "";
//users.email = email;
//users.acc_status = "A";
//users.role = "";
users.last_logon_dt_tm = null;
users.failed_count = null;
users.created_by = "ME1";
users.created_on = DateTime.Now;
param.Add(users.GetType().Name, users);
LazyDB ldb = new LazyDB();
ldb.Save(param);
TipBoxHelper.ShowNotify("Record Inserted");
}
catch (SqlException ex)
{
TipBoxHelper.ShowErroNotify("SQL Exception");
}
catch (Exception ex)
{
TipBoxHelper.ShowErroNotify(ex.ToString());
}
}
在foreach循环中,我需要像这样设置id值:
var id = aData.id?
C#是一种强类型语言。.NET为您自动将松散类型的JSON处理为对象时,它希望您提供具有匹配数据类型的变量,并会丢弃所有意外值。如果发送对象数组并提供一个变量List<string>
,则它将丢弃您发送的每个信息,因为该变量无法保存它。因此,您将无法获得id
或其他任何东西。
如果您以的形式发送aData [{id:3,name:'Test'},{id:4,name:'Test2']
,则希望您提供例如
List<AData> aData;
与AData
类型定义为
public class AData {
int id;
string name;
}
完成此操作后,您就可以使用来获取id
列表中每个项目的aData[i].id
。如果在一个对象中未提供ID,则的对应值aData[i].id
将是数据类型的默认值,在这种情况下为0
。
如果您不知道期望哪些字段,也可以使用字典:
List<Dictionary<string,object>> aData
aData[i]["id"]
然后将保存您要搜索的值。但要注意:如果id
在一个JSON对象中未提供,IndexOutOfRangeException
则在使用时将抛出aData[i]["id"]
。(这可能会也可能不会,因为在词典中,您现在可以区分未发送的值和来自前端的默认值-但最好记住这一点。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句