Just a quick question from a newbie to the pro’s.
I am trying to implement a editable grid type form in my application. Here is the example.
@for (int i = 0; i < Model.Items.Count; i++)
{
<tr>
<td>@Html.CheckBoxFor(m => m.Items[i].fav_ind)
</td>
<td>
<a href="#" onclick="ShowDeals(@Model.Items[i].item_no);event.returnValue = false; return false;">
DEALS</a>
</td>
<td>@Html.DisplayFor(m => m.Items[i].item_no)
</td>
<td>@Html.DisplayFor(m => m.Items[i].item_desc)
</td>
<td>@Html.DisplayFor(m => m.Items[i].mfr_item)
</td>
<td>@Html.DisplayFor(m => m.Items[i].pack_size)
</td>
<td>@Html.DisplayFor(m => m.Items[i].purc_uom)
</td>
<td>@Html.DisplayFor(m => m.Items[i].purc_uom_conv)
</td>
<td>@Html.DisplayFor(m => m.Items[i].list_prc)
</td>
<td>
@Html.TextBoxFor(m => m.Items[i].nett_prc)
</td>
<td>
@Html.TextBoxFor(m => m.Items[i].Qty)
</td>
</tr>
}
This @for is inside a Html.BeginForm, because I want the user to be able to edit the last 2 fields (nett_prc and qty. There is also a submit bottom on the bottom of this grid(table).
Now for the question, when I submit, I get all the rows back in the controller, but on the items only the 2 fields where is is Html.TextBoxFor() has data in it. I want to get all the fields in the controller. I kwno I can use @Html.HiddenFor(), but I want to be able to display the other fields in labels, and when the user submits I want the values ass well.
Thanks in advance.
You can do both
DisplayForandHiddenForat the same time:However, why would you need
HiddenFor? If the user is not supposed to edit some of the values, you can’t trust the values that come from the form anyway. And if you can’t trust them you will have to read the originals (e.g. from a database). What doesHiddenForbuy you here?