Я работаю над веб-страницей (ASP.NET 4.0), и я просто начинаю, пытаясь заставить этот ajax-вызов работать (я начинающий ajax / jQuery), и я получаю сообщение об ошибке на вызове,Вот js:
var TestParams = new Object;
TestParams.Items = new Object;
TestParams.Items[0] = 1;
TestParams.Items[1] = 5;
TestParams.Items[2] = 10;
var finalObj = JSON.stringify(TestParams);
var _url = 'AdvancedSearch.aspx/TestMethod';
$(document).ready(function ()
{
$.ajax({
type: "POST",
url: _url,
data: finalObj,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg)
{
$(".main").html(msg.d);
},
error: function (xhr, ajaxOptions, thrownError)
{
alert(thrownError.toString());
}
});
Вот метод в моем коде файла:
[Serializable]
public class TestParams
{
public List<int> Items { get; set; }
}
public partial class Search : Page
{
[WebMethod]
public static string TestMethod(TestParams testParams)
{
// I never hit a breakpoint in here
// do some stuff
// return some stuff
return "";
}
}
Вот строковый json, который я отправляю обратно:
{"Items":{"0":1,"1":5,"2":10}}
Когда я запускаю его, я получаю эту ошибку:
Ошибка времени выполнения Microsoft JScript: 'undefined' равен нулю или не является объектом
Это прерывает функцию ошибки.
Я также пробовал этот вариант построения json (на основе примера на веб-сайте) с этим окончательным json:
var TestParams = new Object;
TestParams.Positions = new Object;
TestParams.Positions[0] = 1;
TestParams.Positions[1] = 5;
TestParams.Positions[2] = 10;
var DTO = new Object;
DTO.positions = TestParams;
var finalObj = JSON.stringify(DTO)
{"positions":{"Positions":{"0":1,"1":5,"2":10}}}
То же сообщение об ошибке.
Itне похоже, что будет трудно отправить список целых с веб-страницы на мой веб-метод.Есть идеи?
Спасибо, Джей