Как мне присвоить моему анонимному типу javascript имена свойств с увеличенными счетчиками?

#javascript #json #anonymous-types

#javascript #json #анонимные типы

Вопрос:

Итак, вот мой сценарий, я «сериализую» некоторые данные json с анонимными типами в javascript для отправки обратно в контроллер MVC. Возможно, я неправильно подхожу к этой проблеме, но у меня есть список объектов или массив объектов, которые находятся во вложенном объекте. Ниже приведен пример данных, которые я отправляю обратно.

 var items = [];
var counter = 0;
$("#table > tbody > tr").each(function () {
    var ModelId = $(this).find("#models option:selected").val();
    var Attrib1 = $(this).find("#attrib1 option:selected").val();
    var Attrib2 = $(this).find("#attrib2 option:selected").val();
    var Price = $(this).find("#price").val();
    var Notes = $(this).find("#notes").val();
    var ModelName = "MyObjects["   counter   "].ModelId";
    var Attrib1Name = "MyObjects["   counter   "].Attrib1";
    var Attrib2Name = "MyObjects["   counter   "].Attrib2";
    var PriceName = "MyObjects["   counter   "].Price";
    var NotesName = "MyObjects["   counter   "].Notes";
    var item = {
       ModelName: ModelId,
       Attrib1Name: Attrib1,
       Attrib2Name: Attrib2,
       PriceName: Price,
       NotesName: Notes
    }
    items.push(item);
    counter  ;
});
 

Пытался сделать это несколькими разными способами (смех принимается) :). Но по сути мне нужно, чтобы имя свойства было значением переменной, например. ModelName

Любая помощь приветствуется!

Спасибо, Стивен

Комментарии:

1. Не связано, но есть ли у вас повторяющиеся идентификаторы в вашем DOM? $(this).find("#price").val(); должно быть только одно значение.

2. @DavidEhrmann на самом деле вы можете быть правы, я думал в другом контексте. Позвольте мне попробовать это действительно быстро.

3. @DavidEhrmann ты был прав, лол. Я не знаю, почему я так усложнял это. Я забыл о том, что это просто массив, и думал о ASP.NET Схема именования MVC, которая была принята через обычную форму POST или ajax post. Если вы укажете это в качестве ответа, я приму его.

4. Зачем вам нужен счетчик? Вы создаете массив; индекс не подразумевает значение счетчика?