ViewModel содержит список, который не привязан при публикации формы - PullRequest
0 голосов
/ 19 ноября 2011

В моем ViewModel есть свойство с именем List<AssignablePolicy> AssignablePolicies.Я хочу создать элементы, которые сопоставляются с этим списком, используя Jquery.Поэтому я использую этот код:

$('#frmPolicy').append('<input type="hidden" name="AssignablePolicies[].CompanyName" value="' + company + '"/>');

$('#frmPolicy').append('<input type="hidden" name="AssignablePolicies[].PolicyNumber" value="' + policyNumber + '"/>');

$('#frmPolicy').append('<input type="hidden" name="AssignablePolicies[].Amount" value="' + amount + '"/>');

AssignablePolicy содержит CompanyName, PolicyNumber и Amount.Однако, когда я публикую форму, я получаю нулевое значение в AssignablePolicies в моей модели представления.

Но когда я делаю

Request.Form["AssignablePolicies[].CompanyName"]

, скрытые значения формы становятся доступными.Есть идеи, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2011

При использовании составного свойства вам необходимо указать фактический индекс каждого элемента. При повторной публикации они должны быть последовательными (или вам нужно включить элемент .Index). Вот некоторый javascript, адаптированный из аналогичного ответа , который исправит свойства поста. Предполагается, что первый вход в каждом наборе имеет класс policy-start.

$('form').submit( function() {
      $('.policy-start').each( function(idx) {
          var prefix = 'AssignablePolicies[' + idx + '].';
          $(this).attr('name',prefix + 'CompanyName')
                 .next(':hidden')
                 .attr('name',prefix + 'PolicyNumber' )
                 .next(':hidden')
                 .attr('name',prefix + 'Amount' );
      });
      return true;
 });
0 голосов
/ 19 ноября 2011

У меня есть проблема, подобная этой.

Класс модели с коллекцией.Запрос содержит ключи, но коллекция была нулевой.Короче говоря, я добавил в свой контроллер параметр ICollection, чтобы позволить mvc связывать данные.

Посмотрите этот обходной путь, может быть, он вам поможет: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx. Это работает для меня.Но я новичок.

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