Как я могу отправить массив строки на ASP.NET Контроллер MVC без формы?

Неустранимая ошибка: [TraitA] и [TraitB] определяют одно и то же свойство ([$ x]) в композиции [ClassC]

Происходит, когда класс пытается use несколько Черты , где две или более из этих признаков имеют , определяют свойство с тем же именем и с свойством, имеющим разные начальные значения.

Пример:

Проблемное: хотя можно разрешить конфликты между конкурирующими методами , в настоящее время нет синтаксиса, который бы разрешил конфликт между двумя конкурирующими свойствами. Единственное решение в это время - refactor ; т.е. избежать конфликта между именами свойств, которые приводят к фатальной ошибке.


Вопросы, относящиеся:

180
задан tereško 12 July 2012 в 19:51
поделиться

3 ответа

Я изменил свой ответ для включения кода для тестового приложения, которое я сделал.

Обновление: Я обновил jQuery для установки 'традиционной' установки на истинный, таким образом, это будет работать снова (на ответ @DustinDavis').

Сначала JavaScript:

function test()
{
    var stringArray = new Array();
    stringArray[0] = "item1";
    stringArray[1] = "item2";
    stringArray[2] = "item3";
    var postData = { values: stringArray };

    $.ajax({
        type: "POST",
        url: "/Home/SaveList",
        data: postData,
        success: function(data){
            alert(data.Result);
        },
        dataType: "json",
        traditional: true
    });
}

И вот код в моем классе контроллера:

public JsonResult SaveList(List<String> values)
{
    return Json(new { Result = String.Format("Fist item in list: '{0}'", values[0]) });
}

, Когда я вызываю ту функцию JavaScript, я получаю предупреждение, говоря "Первый объект в списке: 'item1'". Надежда это помогает!

243
ответ дан MrDustpan 23 November 2019 в 06:12
поделиться

Не отправляйте данные как массив. Для привязки со списком пары ключ/значение должны быть отправлены с тем же значением для каждого ключа.

Вам не должна быть нужна форма, чтобы сделать это. Вам просто нужен список пар ключ/значение, которые можно включать в вызов к $ .post.

9
ответ дан Alastair Pitts 23 November 2019 в 06:12
поделиться

FYI: JQuery изменили способ сериализации почтовых данных.

http://forum.jquery.com/topic/nested-param-serialization

Вы должны установить для параметра «Традиционный» значение true, иначе

{ Values : ["1", "2", "3"] }

будет отображаться как

Values[]=1&Values[]=2&Values[]=3

вместо

Values=1&Values=2&Values=3
107
ответ дан 23 November 2019 в 06:12
поделиться
Другие вопросы по тегам:

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