gpt4 book ai didi

asp.net-mvc - 列表中的 MVC4 绑定(bind)下拉列表(错误)

转载 作者:行者123 更新时间:2023-12-01 03:58:55 25 4
gpt4 key购买 nike

我在 View 中有以下代码。 (index.cshtml)

绑定(bind)问题

  • 第一个下拉菜单根据“ChildItem”编辑器模板选择正确的值。
  • 使用内联下拉列表的第二个示例不起作用我不想创建编辑器模板只是为了显示下拉值。
  • 奇怪的是 TextBoxFor 将显示正确的值。这似乎只是下拉列表的问题。

  • 如何修复绑定(bind)以便第二个下拉菜单起作用?我调试了它。 ViewData.Eval 似乎没有从 _.Children[i].ChooseId 中获取正确的值.

    更新(错误)
    这是 MVC 框架 http://aspnet.codeplex.com/workitem/8311 中已确认的错误(低优先级,如何?)
    @using (Html.BeginForm())
    {
    for (int i = 0; i < Model.Children.Count(); i++)
    {
    <p>A: @Html.EditorFor(_ => _.Children[i], "ChildItem")</p>
    <p>B: @Html.DropDownListFor(_ => _.Children[i].ChooseId, TestModel.PeopleSelect)</p>
    }
    <button type="submit">GO</button>
    }

    我试过使用 DropDownListFor(_ => Model.Children[i].ChooseId) ,同样的结果。
    使用 TextBoxFor(_ => _.Children[i].ChooseId)显示正确的值, 奇怪?

    引用这里是 ChildItem.cshtml
    @using dropdown.Controllers
    @using dropdown.Models
    @model dropdown.Models.TestPerson
    @Html.DropDownListFor(_ => _.ChooseId, TestModel.PeopleSelect)

    它看起来像这样:

    A works, B does not.

    最佳答案

    后来我发现了这个:http://aspnet.codeplex.com/workitem/8311
    这是一个已确认的错误。

    我发现的唯一解决方法是这个。

    标记所选项目
    @Html.DropDownListFor(_ => _.Children[i].ChooseId, Mark(TestModel.PeopleSelect, Model.Children[i].ChooseId))
    标记功能/扩展方法

    @functions {
    private IEnumerable<SelectListItem> Mark(IEnumerable<SelectListItem> items, object Id)
    {
    foreach (var item in items)
    if (string.CompareOrdinal(item.Value, Convert.ToString(Id)) == 0)
    item.Selected = true;
    return items;
    }
    }

    关于asp.net-mvc - 列表中的 MVC4 绑定(bind)下拉列表(错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14951544/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com