Сообщение Ajax массива строк JavaScript к JsonResult как список <строка> всегда возвращает пустой указатель?

Я пытаюсь создать массив строк в JavaScript и получить результаты в списке строк в методе действия. Ниже то, на что похож мой JavaScript. Я использую jQuery 1.4.2. Проблемой является мой Список в методе действия, всегда показывает ПУСТОЙ УКАЗАТЕЛЬ. Разве массив строк JavaScript не отобразится корректный на список строк в C#?

    var test = ['test1', 'test2'];

    var parms = {
        var1: 'some string',            
        var2: test
    };

    $.ajax({
        type: "POST",
        url: "/Test/JSONTestAction",
        async: false,
        data: parms,
        dataType: "json",
        success: function(data) {

            // success
        }
    });

Затем мой JsonResult похож на следующее:

    public JsonResult JSONTestAction(string var1, List<string> var2)
    {
        // var2 is always NULL -- not good

        return Json(new { test = "test" });
    }
35
задан Robert Harvey 7 October 2010 в 19:43
поделиться

2 ответа

Я столкнулся с той же проблемой после обновления до jquery 1.4.2. Вы можете найти решение здесь (в разделе Ajax).

Добавление традиционного: true в параметры ajax должно работать.

$.ajax({
    type: "POST",
    traditional: true,
    url: "/Test/JSONTestAction",
    async: false,
    data: parms,
    dataType: "json",
    success: function(data) {

        // success
    }
});
54
ответ дан 27 November 2019 в 07:06
поделиться

Это изменение было сделано для улучшения нативного поведения пользователей PHP / Rails, вы можете прочитать об изменениях параметров здесь .

Вы можете включить его для каждого запроса следующим образом:

$.ajax({ 
 //Stuff...
 traditional:true 
});

Или глобально, как это (нужно выполнить только один раз, прежде чем запускать какие-либо запросы):

jQuery.ajaxSettings.traditional = true;
7
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: