如何将整数列表传递给MVC操作?

时间:2010-07-08 22:49:25

标签: asp.net-mvc controller

我有一个取决于整数列表的动作。我的第一直觉是简单地用List声明动作。

我尝试将控件中的操作声明为:

public ActionResult EditMultiple(List<int> ids)

并在我的View调用中如下:

<%= Html.ActionLink("EditMultiple", "EditMultiple", new { ids = new List<int> {2, 2, 2} })%>

虽然当我在动作中放置一个断点时它编译列表是空的。有人知道为什么或有替代方法吗?

添加有关该方案的更多详细信息:

我正在尝试同时“编辑”多个实体。我已经有了一个应用程序,允许我创建/编辑/查看库中书籍的信息。我有一个局部视图,允许用户编辑有关单本书的信息并将其保存到数据库中。

现在我想创建一个视图,允许用户使用一个提交按钮编辑有关多本书的信息。我创建了一个动作EditMultiple,它只渲染每本书的部分(我的视图模型是List),然后添加提交按钮。

2 个答案:

答案 0 :(得分:4)

是。默认模型绑定器可以将“ids”绑定到任何ICollection。但是您必须提交具有相同名称的多个参数。这消除了使用辅助方法“ActionLink”。您可以使用url helper Action并将id附加到链接,如下所示:

<a href="<%= Url.Action("CreateMultiple")%>?ids=2&ids=1&ids=3">Test link</a>
来自Haack街区的

Here's the link

答案 1 :(得分:2)

我不认为

new List<int> {2, 2, 2}

正确转换为可绑定的POST,您要发送

Ids=1&Ids=2&Ids=3

逗号分隔列表也可以使用,我不确定,我不使用蹩脚的默认模型绑定器。

为什么你这样做呢?我希望那些其他东西的伪代码......