сделать выпадающий список человека - PullRequest
2 голосов
/ 27 сентября 2011

У меня есть модель:

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

как мне сделать выпадающий список из списка людей в бритве mvc3 по этому синтаксису: @ Html.DropDownListFor (...)?какой тип должен быть в моем списке персон?

извините, я новичок в mvc3

спасибо всем

Ответы [ 2 ]

1 голос
/ 27 сентября 2011
    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>
1 голос
/ 27 сентября 2011

Вы должны перевести это на List<SelectListItem>, если хотите использовать сборку в MVC HtmlHelpers.

  @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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...