Насколько мне удалось понять визуально это выглядит как таблица проектов для каждого из которых показывается список тасков.
Так, а какое поведение ожидается при нажатии кнопки "Сохранить"? Что все измененные названия проектов (о тасках пока не говорю) сохранятся
и в экшен придет правильно заполненный список проектов. Так не будет. Это слишком сложный биндинг для MVC. Придется писать свой ModelBinder.
Вообще во View много непонятного (а местами страшного
):
<%:Html.HiddenFor(model=>model.ListProject) %>
Что должно быть записано в hidden-поле? Список? Неа. MVC так не может.
<%for (int i = 0; i < ViewData.Model.ListProject.Count; i++) {%> и последующий ListProject.ElementAt(i)
Здесь лучше foreach использовать.
<%:Html.DisplayTextFor(model => model.ListProject.ElementAt(i).ProjectName)%>
<%:Html.HiddenFor(model => model.ListProject.ElementAt(i).ProjectName)%>
Зачем дублировать ProjectName hidden-полем? Да еще с тем же именем.
switch (Dateflag)
{
case "01.01.0001 0:00:00":
Datestatus = "//-----//";
break;
}
Не надо делать такие вещи во въю, иначе придется их дублировать во всех View, где потребуется аналогичная функциональность.
Сделай это либо хелпером, либо свойством ViewModel'и
Ну про хранение строки лучше хранить в ресурсах я уже молчу.
Вообще мне непонятно желание (если я конечно правильно все понял) сохранять все проекты сразу. Сделай список проектов. Сделай отдельное редактирование проекта и будет вам счастье.