DropDownList用于在选择新值时不更改所选值

本文关键字:用于 选择 新值时 DropDownList | 更新日期: 2023-09-27 17:59:08

我想知道是否有人知道为什么当我更改选择列表中的选项时,我的dropdownlistfor没有更改并将新值发布回控制器。选择列表位于forloop中,该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>
}

DropDownList用于在选择新值时不更改所选值

您有一个@Html.HiddenFor(m => m.PoItemsList[i].NCodeId)和一个绑定到同一项的下拉列表;删除隐藏的输入,您的代码应该可以正常工作。