我有一个模特:
public class person
{
public int id{get;set;}
public string name{get;set;}
}
如何通过以下语法从mvc3 razor中的人员列表中创建一个下拉列表:@ Html.DropDownListFor(...)? 什么类型必须是我的人名单?
抱歉,我是mvc3的新手感谢所有
答案 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>