Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC-填充下拉列表_C#_Asp.net Mvc_Drop Down Menu_Populate - Fatal编程技术网

C# ASP.NET MVC-填充下拉列表

C# 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.NETMVC新手。我试图找出如何从数据库中的值创建一个基本的下拉列表。在ASP.NET web表单中,我知道我可以加载如下下拉列表:

Page.aspx

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