Использование указателя Guid для публикации индекса индекса в MVC не получает значения [duplicate]

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

1
задан tereško 4 June 2014 в 06:53
поделиться

1 ответ

Вы можете использовать javascript для динамического создания индексированных входов для post back. В качестве примера создайте фиктивный набор входов, которые клонируются и отображаются, когда вы нажимаете кнопку «добавить домашнее животное» (предполагается, что свойства Pet отображаются в таблице с id = «Pets»)

<div id="NewPet" style="display:none">
  <tr>
    <td><input type="text" name="Pets[#].Type value /></td>
    <td><input type="text" name="Pets[#].Breed value /></td>
    <td>.....</td> // more properties of Pet
    <td><input type="hidden" name="Pets[#].Index" value ="%"/></td>
  </tr>
</div>

Примечание. использование указателя-указателя, чтобы предотвратить его отправку назад

И скрипт

$('#AddButton').click(function() {
  var index = (new Date()).getTime(); 
  var clone = $('#NewPet').clone();
  // Update the index of the clone
  clone.html($(clone).html().replace(/\[#\]/g, '[' + index + ']'));
  clone.html($(clone).html().replace(/"%"/g, '"' + index  + '"'));
  $('#Pets tbody').append(clone.html());
}
5
ответ дан Stephen Muecke 19 August 2018 в 07:47
поделиться
  • 1
    почему у вас есть две линии, которые клонируют? – duxfox-- 24 October 2014 в 15:20
  • 2
    также, что добавляет скрытые «Домашние животные» [#]. Index & quot; делать? У меня нет свойства Index в моей модели – duxfox-- 24 October 2014 в 15:50
  • 3
    @AbdulAhmad. Когда вы отправляете обратно коллекции, DefaultModelBinder требует, чтобы индексы начинались и нули и были последовательными. Добавление Pets[#].Index (это может быть просто Pets.Index) позволяет использовать ModelBinder не последовательные индексы (на самом деле индексаторы могут быть "ABC", "XYZ" вместо 0, 1, 2). Пока значение Index соответствует индексу индекса свойств (бит между квадратными скобками), тогда коллекция будет успешно отправлена. Индекс не является свойством вашей модели (и не должен быть). Это просто свойство, используемое внутри ModelBinder. – Stephen Muecke 25 October 2014 в 01:19
  • 4
    Я вижу, что строка clone.html в javascript по какой-то причине не работает для меня, есть ли синтаксическая ошибка? – duxfox-- 25 October 2014 в 01:23
  • 5
    @AbdulAhmad, Последняя строка скрипта имеет ошибку и должна быть $('...').append(clone.html()); Я предполагаю, что OP выбрал это. Обратите внимание также, если вы также захотите удалить, тогда установка var index на количество существующих элементов не будет работать (вы можете получить идентичные индексы), чтобы вы могли использовать var index = (new Date()).getTime();, поэтому индексом всегда является уникальное значение. – Stephen Muecke 25 October 2014 в 01:48
Другие вопросы по тегам:

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