У меня есть модель, которая содержит информацию для входа пользователя, его задачи на этой и следующей неделе:
public class TaskThisAndNextWeek
{
public TaskThisAndNextWeek()
{
}
public UserLoginInfo Info { get; set; }
public List<TaskInThisWeek> TaskThisWeek { get; set; }
public List<TaskInNextWeek> TaskNextWeek { get; set; }
public void SetData(UserLoginInfo Info, List<TaskInThisWeek> TaskThisWeek, List<TaskInNextWeek> TaskNextWeek)
{
this.Info = Info;
this.TaskThisWeek = TaskThisWeek;
this.TaskNextWeek = TaskNextWeek;
}
}
И я отправляю модель в виде, подобном этому, в контроллере UserRountineController.cs
public ActionResult ShowTask()
{
//some input data to lists and object inside class TaskThisAndNextWeek
return View(TaskThisAndNextWeek);
}
И HttpPost, как показано ниже
[HttpPost]
public void UpdateDetail(TaskThisAndNextWeek obj)
{
foreach (var item in obj.TaskThisWeek)
{
System.Diagnostics.Debug.WriteLine(item.JobID);
}
}
Я использую цикл для отображения данных и позволяю пользователю изменять и отправлять свои изменения.
@model UserTaskReport.Models.TaskThisAndNextWeek
@using (Html.BeginForm("UpdateDetail", "UserRountine"))
{
@Html.AntiForgeryToken()
.....
for (int i= 0;i<Model.TaskThisWeek.Count() ;i++)
{
<tr class="@(Model.TaskThisWeek[i].isApproved==1?"Company":"")">
<td class="none">@Html.TextBoxFor(m=>m.TaskThisWeek[i].JobID)</td>
<td class="none">@Html.TextBoxFor(m => m.TaskThisWeek[i].Unknown1)</td>
<td class="none">@Html.TextBoxFor(m => m.TaskThisWeek[i].Unknown2)</td>
<td align="center">@Html.TextBoxFor(m => m.TaskThisWeek[i].IniMonth)</td>
<td>@Html.TextBoxFor(m => m.TaskThisWeek[i].userSName)</td>
<td>@Html.TextBoxFor(m => m.TaskThisWeek[i].Title)</td>
<td align="right">@Html.TextBoxFor(m => m.TaskThisWeek[i].lastWeekPercent)</td>
<td align="right">
@Html.TextBoxFor(m => m.TaskThisWeek[i].thisWeekPercent)
@*<input name="thisWeekPercent" type="text" value="@Html.TextBoxFor(m => m.TaskThisWeek[i].thisWeekPercent)" id="" style="text-align: right;">*@
</td>
<td>
@Html.TextBoxFor(m => m.TaskThisWeek[i].thisWeekContent)
@*<input name="thisWeekContent" type="text" id="" value="@item.thisWeekContent">*@
</td>
}
.......
<input type="submit" name="" value="Execute" id="">
}
Когда я запускаю программу, представление показывает ожидаемую информацию, но когда я изменяю и отправляю. Ошибка скинула сказал
Для этого объекта не определен конструктор без параметров.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Я попытался изменить List <> на ENumberable в модели, для -> foreach в поле зрения даже изменить @ Html.TextBox, но все так же.
Пожалуйста, помогите мне с этим делом.
P / S: Я упаковал UserInfo в модель и отправил ее для просмотра для дальнейшей цели, такой как поиск по ID ... Но я думаю, что это небезопасно. Есть ли другой способ сделать это без отправки UserInfo?