在MVC 2中获取Listbox的内容

时间:2010-12-27 16:24:07

标签: c# asp.net-mvc asp.net-mvc-2

我有一个客户对象的视图,可以让他选择一些产品。

在我看来,想要显示一个列表框(我的客户选择的产品),然后在客户端添加和删除项目。然后,我需要将列表框中的所有数据传递回我的操作,以便我可以遍历列表并将其保存在数据库中。

如何将整个列表传递回动作以及动作的参数应该是什么?

在客户端,我认为我可以为所选产品添加和删除选项标签。

我知道模型绑定,但我不知道如何将列表框绑定到对象结构。

JD

2 个答案:

答案 0 :(得分:1)

最简单的方法是让您的方法接受字符串或整数列表,例如:

public ActionResult About(List<string> products);

现在,默认的模型绑定器会将您的所有产品绑定到列表中。

您还可以让您的方法接受FormCollection并拆分列表框的内容,例如:

public ActionResult Products(FormCollection form)
{
    var products = form["Products"].Split(',');
}

产品现在将包含您的所有产品。

答案 1 :(得分:1)

这是一个高级解决方案,但我发现使用Knockout进行列表操作客户端比使用MVC的内置列表支持要容易得多。史蒂夫桑德森有一个很好的walk though如何实现这一点。他还有walk though只使用MVC +表格。我建议同时完成这两项工作。这些解决方案中的任何一个都比将逗号分隔的字符串发送回服务器更具可维护性/可扩展性。