jQuery JSON ASP.NET MVC объект доступа со свойствами списка массивов? - PullRequest
1 голос
/ 26 августа 2009

У меня есть объект с 2 свойствами ArrayList.

public class TestDTO
{
    public ArrayList Test1 { get; set; }
    public ArrayList Test2 { get; set; }
}

Я возвращаю объект как JSON в моем действии JsonResult. УСПЕХ от моего вызова AJAX выглядит следующим образом, но, похоже, он не работает. Что мне нужно сделать, чтобы получить доступ к сериализованному массиву из объекта?

 success: function(data) {

                    var counter = 1;
                    jQuery.each(data.Test1, function() {
                        $("#DataFields" + counter).val(this);
                        counter++;
                    });
                },

Ответы [ 3 ]

3 голосов
/ 26 августа 2009

Один из способов увидеть, как выглядит результат - использовать Firebug в Mozilla. Или автономное приложение Fiddler.

Я думаю, что класс оборачивает весь объект, поэтому он должен выглядеть примерно так:

TestDTO {
   Test1 [
      "value", "value 1", "value 2"
   ],
   Test2 [
      "value", "value 1", "value 2"
   ]
}

Если вы хотите получить доступ к Test1, вы должны написать TestDTO.Test1. Если вам нужно первое значение в Test1, вы должны написать TestDTO.Test1 [0] и так далее ...

Один из способов получить больше контроля над выходом - использовать LINQ и выбрать новый:

select new {
   MyVariable = MyValue,
   AnotherVariable = AnotherValue
}

Теперь вы знаете, что «MyVariable» будет также именем переменной JSON.

2 голосов
/ 26 августа 2009

Может быть полезно следующее:

success: function(data) {
    $.each(data.Test1, function(i, item) {
        $('#DataFields' + i).val(item);
    });
}
1 голос
/ 26 августа 2009

Когда я попадаю в подобные ситуации, я использую firebug и ломаюсь где-нибудь внутри метода успеха. Тогда проверьте фактическую структуру данных, и я держу пари, что это будет очевидно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...