Во-первых, убедитесь, что ваша переменная выбора является допустимым JSON, то, что вы написали в своем вопросе, не является допустимым обозначением JSON.
Во-вторых, в вашем определении веб-метода MyMethod получает строку в качестве параметра; Допустим, вы объявите это как
[WebMethod]
public MyMethod(string selections)
{
//Do processing here
}
В теле вашего метода. Десериализуйте строку в Dictionary<string,string>
, используя JavascriptSerializer, например:
JavascriptSerializer js = new JavascriptSerializer();
Dictionary<string,string> result = js.Deserialize<Dictionary<string,string>>(selections);
Теперь вы можете перебирать элементы в своем словаре.
Просто чтобы уточнить, ваша переменная выборок должна иметь каждое свойство, заключенное в кавычки; в вашем случае id1, id2 ... должны быть 'id1': 'comment', 'id2': 'comment' и т. д.
EDIT
Добавление кода, демонстрирующего, как должен вызываться веб-сервис.
var selections = "{'id1': 'comment1', 'id2': 'comment2'}";
$.ajax({
type: "POST",
url: "MyPage.aspx/MyMethod"
data: JSON.stringify(selections),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
onSuccess(msg);
}
});
В качестве последнего совета, ознакомьтесь с jsFiddle, он позволяет быстро тестировать вещи. См. Например .