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..." />