【问题标题】:asp.net mvc3, why my dropdownlist is not selected?asp.net mvc3,为什么我的下拉列表没有被选中?
【发布时间】:2012-03-15 10:59:42
【问题描述】:

我从枚举创建我的选择列表。

[Flags]
public enum Age
{
    New_Born = 1,
    Toddler = 2,
    Preschool = 4,
    Kindergarten = 8,
    Elementary_School = 16,
    Middle_School = 32,
    High_School = 64
}


var age = from Age e in Enum.GetValues(typeof(Age))
          select new { Id = (int)e, Name = e.ToString().Replace("_", " ") };

我都试过了:

var ageList = new SelectList(age, "Id", "Name", (int)Model.Child.Age);

var ageList = new SelectList(age, "Id", "Name", Model.Child.Age);


@Html.DropDownListFor(m => m.Child.Age, ageList, "Your Child's Age")

除了未选择所选值之外,一切正常。

编辑:经过数小时的测试,终于修复它。 chagne Id = (int)e to Id = e.

var age = from Age e in Enum.GetValues(typeof(Age))
          select new { Id = e, Name = e.ToString().Replace("_", " ") };

var ageList = new SelectList(age, "Id", "Name", Model.Child.Age);

【问题讨论】:

  • 出于好奇,为什么Age 枚举定义为Flags 枚举?您希望孩子能够同时加入ToddlerPreschool(例如)?
  • 我们为孩子们推荐书和应用程序,有些书对初中和高中的孩子都有好处。
  • 我认为你的 Model.Child.Age 有一些价值,对吧?

标签: asp.net-mvc-3 drop-down-menu html.dropdownlistfor


【解决方案1】:

我刚刚创建了一个类似的示例并解决了您的问题,我相信您的代码有两个问题:

在您的控制器代码中,您应该有第一个选项,如下所示:

SelectList selectList = new SelectList(items, "Id", "Name", (int)Qualities.Whatever);

在你看来:

<%= this.Html.DropDownListFor(m => m.List.SelectedValue, this.Model.List, "Qualities") %>

想一想,为什么要通过两次SelectList?您应该传递选定的值,然后传递值列表。

我没有使用 Razor 视图引擎这一事实无关紧要。

【讨论】:

  • 感谢您的帮助,但没有解决。但我设法把它修好。我所要做的就是删除 (int)
  • 我觉得很奇怪。但是无论如何,您能否用您的代码回答您自己的问题并将其标记为正确?这将帮助我找到解决问题的另一种方法以及其他提出该问题的人。
【解决方案2】:

经过数小时的测试,终于修复它。 chagne Id = (int)e to Id = e.

var age = from Age e in Enum.GetValues(typeof(Age)) 选择新的 { Id = e, Name = e.ToString().Replace("_", " ") };

var ageList = new SelectList(age, "Id", "Name", Model.Child.Age);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2015-07-03
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多