C# 如何在MVC3中使用实体框架绑定dropdownList

C# 如何在MVC3中使用实体框架绑定dropdownList,c#,asp.net-mvc,asp.net-mvc-3,entity-framework-4,html.dropdownlistfor,C#,Asp.net Mvc,Asp.net Mvc 3,Entity Framework 4,Html.dropdownlistfor,我想在我的MVC应用程序中使用Entity Framework在页面上显示一个dropdownList,但我只是被困在这里使用HTML Helper来实现这一点。所以,如果有人有实体框架的知识,请帮助我 我的dataContext部分类是Entities,其中名为MemberInfo的实体有一些字段,包括MemberID,MemberName,因此我的下拉列表应该显示字段MemberName,在该字段后面的值应该是MemberID 我尝试过的代码--> 在控制器中,我返回模型--> 但是它不起作

我想在我的
MVC
应用程序中使用
Entity Framework
在页面上显示一个
dropdownList
,但我只是被困在这里使用HTML Helper来实现这一点。所以,如果有人有实体框架的知识,请帮助我

我的dataContext部分类是
Entities
,其中名为
MemberInfo
的实体有一些字段,包括
MemberID
MemberName
,因此我的下拉列表应该显示字段
MemberName
,在该字段后面的值应该是
MemberID

我尝试过的代码-->

在控制器中,我返回模型-->


但是它不起作用(
错误)

您需要将所有对象作为“模型”传入。最佳做法是使用视图模型,该模型将包含数据列表和用于存储所选项目的属性

视图模型

public class MyViewModel
{
    // The drop-down list and variable to get selection
    public List<Member> Members { get; set; }
    public int SelectedMemberId { get; set; }
}
最后,在您的视图中(这些行需要在一个{…}中,并确保您的视图强类型为
MyViewModel

@Html.DropDownList("SelectedMemberId", new SelectList(Model.Members, "MemberID", "Name"))
<input type="submit" value="Save etc..." />
@Html.DropDownList(“SelectedMemberId”,新建SelectList(Model.Members,“MemberID”,“Name”))

在本例中,您可以在
HttpPost
操作上设置一个断点,并检查调试字符串,以检查是否返回了正确的成员,并根据需要继续操作。

错误是什么?您的视图是强类型的吗?关于如何实现这一点,有很多示例,您搜索过吗?我正在返回
MemberNameList
对于视图,如何使用它来显示dropdownList。上面的第一行代码无效(第二个参数shd b为可枚举类型).你能用正确的syntex重写这行吗?我在谷歌上搜索了很多,但没有找到任何合适的答案!我已经给出了显示列表和获取被选中者的完整示例。
方法'System.Web.Mvc.Html.SelectExtensions.DropDownListFor'的类型参数(System.Web.Mvc.HtmlHelper、System.Linq.Expressions.Expression、System.Collections.Generic.IEnumerable)无法从用法中推断。请尝试显式指定类型参数。
这是因为您的视图应强类型化为“MyViewModel”而不是“SelectListItem”-我已经在说明中添加了该注释。不!!!这是bcoz u'v编写的
DropDownListFor
,而不是
DropDownList
。现在它可以工作了,谢谢你的回答。是的,你能帮我做一件事吗。我想在标签文本中显示所选的
成员名
(每当用户选择一个选项时,标签文本shd将更改为所选值(
MemberID
))如果您想在用户更改选择时执行此操作,则需要使用JavaScript(或JQuery等)执行此操作。
public class MyViewModel
{
    // The drop-down list and variable to get selection
    public List<Member> Members { get; set; }
    public int SelectedMemberId { get; set; }
}
[HttpGet]
public ActionResult Index()
{
    var viewModel = new MyViewModel();
    viewModel.Members = FinanceDBContext.MemberInfoes.ToList();
    return View(viewModel);
}

[HttpPost]
public ActionResult Index(MyViewModel viewModel)
{
    string debug = string.Format("You selected member: {0}", viewModel.SelectedMemberId);
    return View(viewModel);
}
@Html.DropDownList("SelectedMemberId", new SelectList(Model.Members, "MemberID", "Name"))
<input type="submit" value="Save etc..." />