1

我想在我的应用程序中dropdownList使用的页面上显示一个,但我只是被困在这里使用 HTML Helper 来执行此操作。所以如果有人了解实体框架,请帮助我......Entity FrameworkMVC

我的 dataContext 部分类是Entities,其中一个名为的实体MemberInfo有一些字段,包括MemberID& MemberName,所以我的 dropdownList 应该显示字段MemberName& 后面的值应该是MemberID

我尝试过的代码--->

@Html.DropDownListFor(Model => Model.MemberID, MemberInfo)

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

var MemberNameList = FinanceDBContext.MemberInfoes.Select(x => new { x.MemberID, x.Name });
return View(MemberNameList);  

但它不起作用(errors)。

4

1 回答 1

2

您需要将所有对象作为“模型”传递。最佳实践是使用包含数据列表和属性来存储所选项目的ViewModel 。

视图模型

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

最后,在您的视图中(这些行需要在 BeginForm { ... } 内并确保您的视图是强类型的MyViewModel

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

在此示例中,您可以在操作上设置断点HttpPost并检查调试字符串以检查是否返回了正确的成员并按要求继续。

于 2013-05-20T09:14:13.327 回答