【发布时间】:2016-07-29 10:17:11
【问题描述】:
我想知道当我更改选择列表中的选项时,是否有人知道为什么我的 dropdownlistfor 没有更改并将新值发回控制器。选择列表位于一个 forloop 中,该循环显示带有多个选择列表的多个项目,因此用户可以将他们选择的项目更改为新项目。
@for (int i = 0; i < Model.PoItemsList.Count; i++)
{
net += Convert.ToDecimal(Model.PoItemsList[i].Net);
vat += Convert.ToDecimal(Model.PoItemsList[i].Vat);
gross += Convert.ToDecimal(Model.PoItemsList[i].Gross);
<tr>
<td>
@Html.HiddenFor(m => m.PoItemsList[i].Id)
@Html.HiddenFor(m => m.PoItemsList[i].NCodeId)
@Html.TextBoxFor(m => m.PoItemsList[i].ItemRef, new { @class = "form-control" })
</td>
<td>
@Html.TextBoxFor(m => m.PoItemsList[i].Description, new { @class = "form-control", @style = "width: 200px;" })
</td>
<td>
@*@Html.DropDownListFor(m => m.PoItemsList[i].NCodeId, Model.NominalCodeList, new { @class = "form-control", @id = "ncode" })*@
@Html.DropDownListFor(m => m.PoItemsList[i].NCodeId, new SelectList(Model.NominalCodeList, "Value", "Text", Model.PoItemsList[i].NCodeId), new { @class = "form-control"})
</td>
<td>
@Html.TextBoxFor(m => m.PoItemsList[i].CostPerItem, new { @class = "form-control", @Value = Convert.ToDecimal(Model.PoItemsList[i].CostPerItem) })
</td>
<td>
@Html.TextBoxFor(m => m.PoItemsList[i].Quantity, new { @class = "form-control", @style = "width: 50px;" })
</td>
<td>
@Html.TextBoxFor(m => m.PoItemsList[i].Net, new { @class = "form-control cpd-align-right", @Value = Convert.ToDecimal(Model.PoItemsList[i].Net) })
</td>
<td>
@Html.TextBoxFor(m => m.PoItemsList[i].Vat, new { @class = "form-control cpd-align-right", @Value = Convert.ToDecimal(Model.PoItemsList[i].Vat) })
</td>
<td>
@Html.TextBoxFor(m => m.PoItemsList[i].Gross, new { @class = "form-control cpd-align-right", @Value = Convert.ToDecimal(Model.PoItemsList[i].Gross) })
</td>
<td>
@Html.CheckBoxFor(m => m.ManualEntry, new {@class = "form-control"})
</td>
<td>
<input type="button" class="btn btn-danger centre" value="X" onclick="DeleteItemAndSave(@Model.PoItemsList[i].Id)" />
</td>
</tr>
}
【问题讨论】:
-
当您进行回发时,PoItemsList 中的其他属性是否正确填充?
-
是的,如果我在 poitemlist eg.description 中更改任何其他内容,这些更改将被发送回控制器。
-
关注@Ade Stringer 的回答,看看会发生什么
-
现在一切正常,谢谢!
标签: c# asp.net-mvc razor