如何在MVC 3中创建下拉列表?

时间:2013-12-31 07:29:03

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

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

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

类别:

    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"))

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

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

以下是我的解决方案,

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

答案 2 :(得分:-1)

试试这个......

控制器

 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" })