Changes what I have done -
- Convert IEnumerable to List() with variable called modelList.
- Used For Loop to display all property values.
- Used hidden fields to persist only display element properties for POST operation.
- Changed parameter name of POST Controller Action to modelList.
You got to have your view something like this -
@model IEnumerable<TCCApplication.Models.JobOffertModel>
@{
ViewBag.Title = "Minhas ofertas de trabalho";
}
<h2>@ViewBag.Title</h2>
@using (Html.BeginForm("AcceptJobOfferts","Professional", FormMethod.Post)){
var modelList = Model.ToList();
<div class="row">
<div class="col-md-9">
for (int i = 0; i < modelList.Count; i++)
{
<div class="row">
<div class="col-md-2">
<label>Oferta: </label>
@Html.DisplayFor(itemModel => modelList[i].Description)
@Html.HiddenFor(itemModel => modelList[i].Description)
</div>
@if (modelList[i].Acepted)
{
<div class="col-md-2">
<label>Aceitar?</label>
@Html.DisplayFor(itemModel => modelList[i].Acepted)
@Html.HiddenFor(itemModel => modelList[i].Acepted)
</div>
}
else
{
<div class="col-md-2">
<label>Aceitar?</label>
@Html.EditorFor(itemModel => modelList[i].Acepted)
</div>
}
<div class="col-md-2">
<label>Ativa</label>
@Html.DisplayFor(itemModel => modelList[i].Active)
@Html.HiddenFor(itemModel => modelList[i].Active)
</div>
<div class="col-md-3">
<label>Data do trabalho</label>
@Html.DisplayFor(itemModel => modelList[i].JobDate)
@Html.HiddenFor(itemModel => modelList[i].JobDate)
</div>
</div>
}
</div>
<div class="col-md-2">
<input type="submit" value="Aceitar ofertas de trabalho"/>
</div>
</div>
}
And then your controller should be -
[HttpPost]
public ActionResult AcceptJobOfferts(IEnumerable<JobOffertModel> modelList)
{
initBusinessObjects();
return View();
}