制作下拉列表的人

时间:2011-09-27 15:19:35

标签: asp.net-mvc-3

我有一个模特:

public  class person
 {
   public int id{get;set;}
   public string name{get;set;}
 }

如何通过以下语法从mvc3 razor中的人员列表中创建一个下拉列表:@ Html.DropDownListFor(...)? 什么类型必须是我的人名单?

抱歉,我是mvc3的新手

感谢所有

2 个答案:

答案 0 :(得分:1)

如果要在MVC HtmlHelpers中使用构建,则应将其转换为List<SelectListItem>

  @Html.DropDownFor(x => x.SelectedPerson, Model.PersonList)

或者,您可以在模板中自行创建:

<select id="select" name="select">
@foreach(var item in Model.PersonList)
{
   <option value="@item.id">@item.name</option>
}
</select>

答案 1 :(得分:1)

    public class PersonModel
    {           
        public int SelectedPersonId { get; set; }
        public IEnumerable<Person> persons{ get; set; }
    }
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

然后在控制器中

public ActionResult Index()
{        
    var model = new PersonModel{             
        persons= Enumerable.Range(1,10).Select(x=>new Person{

            Id=(x+1),
            Name="Person"+(x+1)                
        }).ToList()                     <--- here is the edit

    };
    return View(model);//make a strongly typed view
}

您的观点应如下所示

@model Namespace.Models.PersonModel
<div>
   @Html.DropDownListFor(x=>x.SelectedPersonId,new SelectList(Model.persons,"Id","Name","--Select--"))
</div>