Подумайте, несет ли ответственность представление или действие контроллера за принятие решений - вы можете отправить все обратно в действие для принятия решения.
В вашей папке Views / Shared создайте контроллер с именем EditorTemplates
В этой папке добавьте частичное представление с именем OtherModel
В этом представлении установите модель на OtherModel и установите Layout = null
Добавьте три поля OtherModel в EditorFor (и HiddenFor, если не отображается isPropTrue). Этот частичный вид отображает только один экземпляр вашего списка.
В вашем главном представлении используйте приведенную выше модель редактора следующим образом. MVC позаботится обо всем рендеринге и обратной передаче модельного состояния для вашего полного списка элементов. Нам нравятся однострочники ...
@Html.EditorFor(model => model.OtherModel)
Когда данные впоследствии отправляются обратно в действие, Model State снова упаковывает все отображаемые элементы в список, поэтому вы можете проверить значение isPropTrue для каждого элемента на сервере.
Единственная проблема с MVC состоит в том, что вы передаете пустой список представлению, вы получаете нулевое значение, поэтому просто замените его пустым списком, когда возвращается ноль