Reputation: 4876
I would like to have a table within a form, with an update button. Ideally each row would be a form, but that doesn't fit html spec.
my view looks like this
@model IEnumerable<DabTrial.Models.ManageFilesModel>
@foreach(var item in Model) {
<tr>
<td>
@Html.TextBoxFor(modelItem=>item.Name)
....
when I look at the markup, the inputs within each row for the same property have the same id
<input id="item_Name" type="text" value="ParentGuardianPMH.pdf" name="item.Name">
...
<input id="item_Name" type="text" value="ParentGuardianMMH.pdf" name="item.Name">
which is obviously invalid - how should I be doing this. Thank you
Upvotes: 2
Views: 6496
Reputation: 2426
you need such thing
@for(int i=0; i< Model.Count(); i++)
{
@Html.TextBoxFor(item => item[i].Name)
}
read this post about model binding to a list http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
Upvotes: 4
Reputation: 60493
use a for
loop, not a foreach
, and you'll have distinct id.
Upvotes: 2