【问题标题】:How to create dropdown list in MVC 3?如何在 MVC 3 中创建下拉列表?
【发布时间】:2013-12-31 17:10:51
【问题描述】:

由于我以前从未在 MVC 中使用过下拉列表,因此在创建下拉列表时遇到了问题。 我已经查过了,但我不明白。我想在 MVC3 中为“性别”创建一个基本的下拉列表。

到目前为止,我已经能够创建这个。

类:

    public Dictionary<int, string> Gender {get;set; }  
    public StudentInformation()
    {

    Gender = new Dictionary<int, string>()
    {
            { 0, "Male"},
            { 1, "Female"},

        };
}

查看:

      @Html.DropDownListFor(model => model.Gender.Keys,
                     new SelectList(
                         Model.Gender, 
                         "Key", 
                         "Value"))

但它会抛出异常“对象引用未设置为对象的实例”。

【问题讨论】:

  • 请展示你的努力。你试过什么?一些代码...
  • 现在检查我已经编辑了它。
  • 你得到一个 NullReferenceException,这对你来说应该很容易调试。模型是否为空?

标签: asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:
【解决方案2】:

这是我的解决方案,

public class Blog {
    private readonly IList<Post> _list = new List<Post> {
        new Post(1, "How to 1"),
        new Post(2, "How to 2"),
        new Post(3, "How to 3"),
        new Post(4, "How to 4"),
        new Post(5, "How to 5")
    };


    public SelectList Posts {
        get {
            return new SelectList(_list, "PostId", "Title");
        }
    }

    public int? SelectedPostId { get; set; }
}

public class Post {
    public Post(int postId, string title) {
        PostId = postId;
        Title = title;
    }

    public int PostId { get; set; }
    public string Title { get; set; }
}

//The View:
@Html.DropDownFor(o => o.SelectedPostId, Model.Posts)

这里是更多解释的链接:

Reference

【讨论】:

  • 视图代码中有一个小错字(助手的名字)。除此之外,这是使用视图模型的最正确方法(与其他答案相比)。
  • 检查我的问题,我已经编辑了它并告诉我我做错了什么。
【解决方案3】:

试试这个....

控制器

 var value = new SelectList(new[]
                {
                    new {ID="1",Name="ISO 9001"},
                    new{ID="2",Name="BIS Hallmark"},
                    new{ID="3",Name="ISI"},
                });
                ViewData["values "] = value 

查看

 @Html.DropDownList("Cert", (SelectList)ViewData["Certification"], "--Select--", new { @class="dropdownlist" ,id = "Cert" })

【讨论】:

  • 除了您的代码示例甚至与海报的原始代码/模型不匹配之外,这甚至都行不通。您正在使用一个键设置 ViewData,然后尝试使用不同的键检索它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
相关资源
最近更新 更多