2011-01-18 2 views
0

У меня есть часть javascript, которая отправляет в метод действия, а вместе с ним и некоторые данные. Этих данных в виде:ASP.NET MVC: метод действия и автоматическая привязка к массиву значений

pageID 1 
photos[1] 2 
photos[2] 1 

Моего метод действия выглядит следующим образом:

public ActionResult PosImage(IEnumerable<int> photos, int pageID) 

Естественно, PageId проступает в данной форме, но фотографии всегда пустые.

Возможно ли, чтобы ASP.MVC связывался с этим?

JS, который обрабатывает пост выглядит следующим образом:

var ids = { 'photos': {}, 'pageID': SitePhotos.site_id }; 
    $('#stone-photo-sortable li').each(function (i) { 
     i++; 
     var id = $(this).attr('rel'); 
     ids.photos[id] = i; 
    }); 
    $.ajax({ 
     type: "POST", 
     url: '/backend/site/posimage/?timestamp=' + new Date().getTime(), 
     dataType: 'json', 
     data: ids, 
     beforeSend: function() { }, 
     complete: function() { }, 
     success: function (html) { 
      if (html.worked == 1) { 
       Notify.add('success', 'New Positions saved to the database..'); 
      } else { 
       Notify.add('failure', 'Couldn\'t save positions.'); 
      } 

     } 
    }); 

ответ

1

Я нету сделал это с JavaScript, но ваши почтовые данные должны быть на самом деле так:

photos: 1 
photos: 2 
photos: 3 

Вы, вероятно, нужно использовать другая перегрузка $ .ajax fororder для передачи данных с двойными именами ключей.

Редактировать похоже, что все, что вам нужно сделать, это установить traditional флаг в true.

1

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

var ids = { 'photos': [], 'pageID': SitePhotos.site_id }; 
    $('#stone-photo-sortable li').each(function (i) { 
     ids.photos[i] = $(this).attr('rel'); 
    }); 
0

Sergio, это может быть исправлено очень легко.

IEnumerable<int> photos будет работать, но ваш массив должен всегда начинаться с 0! не 1

сделать его запустить в 0 и MVC будет разбирать его в свой IEnumerable

подробнее об этом здесь: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

Смежные вопросы