C# ASP.NET MVC-填充下拉列表
我是ASP.NETMVC新手。我试图找出如何从数据库中的值创建一个基本的下拉列表。在ASP.NET web表单中,我知道我可以加载如下下拉列表: Page.aspxC# ASP.NET MVC-填充下拉列表,c#,asp.net-mvc,drop-down-menu,populate,C#,Asp.net Mvc,Drop Down Menu,Populate,我是ASP.NETMVC新手。我试图找出如何从数据库中的值创建一个基本的下拉列表。在ASP.NET web表单中,我知道我可以加载如下下拉列表: Page.aspx <asp:DropDownList ID="myDropDownList" runat="server" DataTextField="FullName" DataValueField="ID" OnLoad="myDropDownList_Load" /> Page.aspx.cs void myDropDown
<asp:DropDownList ID="myDropDownList" runat="server" DataTextField="FullName" DataValueField="ID" OnLoad="myDropDownList_Load" />
Page.aspx.cs
void myDropDownList_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
List<Person> people = GetPeopleFromDatabase();
myDropDownList.DataSource = people;
myDropDownList.DataBind();
}
}
void myDropDownList\u加载(对象发送方,事件参数e)
{
如果(Page.IsPostBack==false)
{
List people=GetPeopleFromDatabase();
myDropDownList.DataSource=人;
myDropDownList.DataBind();
}
}
如何在ASP.NET MVC中执行相同类型的操作?谢谢大家! 在MVC2中,在视图和控制器中使用x.MemberName,Model.DropListItems)%>
将包含数据库中项目的新SelectList
填充到DropListItems中
我相信书呆子晚餐示例中包含了这一点,如果你是MVC新手,你应该真正体验并创建书呆子晚餐应用程序,因为你从中学到了很多东西,即使你计划不使用他们使用的东西。Model
public class EditSongViewModel
{
public int AlbumId { get; set; }
public string Title { get; set; }
public int TrackNumber { get; set; }
public IEnumerable<SelectListItem> Albums { get; set; }
}
查看
@Html.DropDownList("AlbumId", Model.Albums)
或者更好:
@Html.DropDownListFor(model => model.AlbumId, Model.Albums)
请看这篇解释这一切的博文:
看看这篇解释这一切的博文:因为@LenielMacaferi sugests SelectList是你的朋友在你视图的模型中创建的。在这个例子中model.AlbumId来自哪里?我看不到您的服务器上定义了“AlbumId”model@dferraro伟大的你发现了一个错误!刚刚再次打开我答案底部的链接,看到作者在
EditSongViewModel
中添加了AlbumId
。3年前,当我补充我的答案时,thingy不在模型中,当然应该是:D@Lenial谢谢你的澄清。“AlbumId”在这里代表什么?它是否总是表示“选定的AlbumId”?@dferrro:完全正确。它是保存从下拉列表中选择的AlbumId的支持字段。在控制器中使用类似SelectListItem的UI类是一个好主意吗?
@Html.DropDownList("AlbumId", Model.Albums)
@Html.DropDownListFor(model => model.AlbumId, Model.Albums)