Я работал над решением для получения данных с веб-страницы, отправленной через AJAX в WebMethod, и в конечном итоге в базу данных. Я застрял в том, что я делаю с блоком кода веб-метода после завершения метода AJAX Get
.
Вот мой AJAX
function UpdatePeople() {
var PeopleToUpdate = [
{ "name": "John", "age": "17" },
{ "name": "Harry", "age": "19" },
{ "name": "Steve", "age": "23" }
];
jQuery.ajax({
url: '_ajax_updatepeople.aspx/UpdateOnDemand',
type: "POST",
data: JSON.stringify({'PeopleToUpdate' : PeopleToUpdate }),
dataType: "json"
});
}
Вот мой веб-метод и Publi c Класс
[WebMethod]
public string UpdateOnDemand(List<People> PeopleToUpdate)
{
// What do I do here ?????
}
public class People
{
public string name { get; set; }
public string age { get; set; }
}
Как вы можете видеть, в моем веб-методе Я застрял, как получить доступ к этим JSON данным и что-то с ними сделать. Это то, что я пытался, и это не работает вообще. Могу ли я что-нибудь сделать, чтобы это исправить, или мне нужен другой подход? Возникающая ошибка (которая в любом случае может быть не единственной неправильной) заключается в том, что она не может преобразовать из Generic.List
в строку (в случае раздела динамического c содержимого ....)
[WebMethod]
public string UpdateOnDemand(List<People> PeopleToUpdate)
{
dynamic content = JsonConvert.DeserializeObject<People>(PeopleToUpdate);
foreach (var Item in content)
{
SqlConnection myConnection = null;
SqlCommand sqlCmd = null;
try
{
myConnection = DBConnectConfig.openDBConnection();
sqlCmd = new SqlCommand("Insert Into Users (Name, Age) VALUES (@Name, @Age)");
sqlCmd.CommandType = System.Data.CommandType.Text;
sqlCmd.Connection = myConnection;
sqlCmd.Parameters.AddWithValue("@Name", Item.name);
sqlCmd.Parameters.AddWithValue("Age", Item.age);
sqlCmd.ExecuteNonQuery();
}
finally
{
DBConnectConfig.disposeDBObjects(myConnection, sqlCmd);
}
}
return "People added to the database";
}
Я удаленно на правильном пути или нет?