【问题标题】:DropDownListFor not changing selected value when I select a new valueDropDownListFor 在我选择新值时不更改所选值
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 你先生是救生员!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多