У меня есть модель, которая имеет список подпунктов в нем, что-то вроде этого:список Подающий элементов с удаленной первой удаляет все элементы
class MyObj {
public string Name {get;set;}
public List<mySubObject> Items {get;set;}
}
и
class mySubObject {
public string Name {get;set;}
public int Order {get;set;}
}
Теперь, когда я сделать список с для цикла и editorFor, HTML, я получаю somethign так:
<input type="text" name="Items[0].Name">
<input type="Number" name="Items[0].Order">
<input type="text" name="Items[1].Name">
<input type="number" name="Items[1].Order">
...
<input type="text" name="Items[9].Name">
<input type="number" name="Items[9].Order">
Теперь представьте удалить первый эл ement из HTML через jQuery, потому что я больше не хочу его в моем списке, а затем сохраняю список. Данные, восходящая без первого [0]
элемента и всех элементов от 1 до 9 зайдете на сервер, но модель связывания терпит неудачу, и он показывает (на сервере), что список элементов является null
Что утра я делаю неправильно?
Является ли это ошибкой связующего по умолчанию?
, потому что гораздо проще использовать вспомогательную функцию и дополнительную логику, чем просто для стандартного связующего устройства, чтобы игнорировать индексы? а? Я думаю, что этот подход ошибочен. Возможно, это не так, но не идеальное решение? – Aviatrix
Erm, извините, какой подход неправильный? Я не совсем понял, что вы имеете в виду. Тот факт, что связующее устройство по умолчанию игнорирует отверстия в индексах или мое рекомендуемое решение без последовательных индексов? В обоих случаях, если вам не нравятся эти подходы, как объясняется в моем ответе, у вас всегда есть возможность пересчитать индексы при удалении строк на клиенте. Это просто альтернативный метод. –
факт, что связующее устройство по умолчанию игнорирует отверстия, кажется мне неправильным. Рекомендуемое решение будет работать, и все в порядке. Но тот факт, что мы должны написать это ...:/ Другой вариант - сериализовать JSON и опубликовать его ... – Aviatrix