Asp.net mvc 如何将整数列表传递给MVC操作?

Asp.net mvc 如何将整数列表传递给MVC操作?,asp.net-mvc,controller,Asp.net Mvc,Controller,我有一个依赖于整数列表的操作。我的第一反应是简单地用一个列表来声明操作 我尝试将控制器中的操作声明为: public ActionResult EditMultiple(List<int> ids) public ActionResult EditMultiple(列表ID) 在我看来,这样称呼: <%= Html.ActionLink("EditMultiple", "EditMultiple", new { ids = new List<int> {2, 2

我有一个依赖于整数列表的操作。我的第一反应是简单地用一个列表来声明操作

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

public ActionResult EditMultiple(List<int> ids)
public ActionResult EditMultiple(列表ID)
在我看来,这样称呼:

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

虽然它会编译,但当我在操作中设置断点时,列表是空的。有人知道为什么或者有其他方法吗

添加有关场景的更多详细信息:

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

现在我想创建一个视图,允许用户通过一个提交按钮编辑关于多本书的信息。我创建了一个action EditMultiple,它只为每本书呈现部分内容(我的视图模型是List),然后添加了submit按钮。

我不这么认为

new List<int> {2, 2, 2}
逗号分隔列表也可以,我不确定,我不使用蹩脚的默认modelbinder


你为什么要这么做?我希望这是其他东西的伪代码…

是的。默认模型绑定器可以将“ID”绑定到任何ICollection。但您必须提交多个同名参数。这就避免了使用助手方法“ActionLink”。您可以使用url帮助器操作并将ID附加到链接,如下所示:

<a href="<%= Url.Action("CreateMultiple")%>?ids=2&ids=1&ids=3">Test link</a>


来自Haack的block。

你在行动中发布了什么?在这种情况下,我上面的示例与我的真实场景有些接近。这是我要去的地方,不是邮局。我将用关于真实场景的更多信息更新描述。问题中添加了更多详细信息。当然,我并不是真的在编辑书籍,但为了这次讨论的目的,这已经足够好了。如果你能想出一个更好的方法来编辑多本书,而不是为EditMultiple创建一个动作,在列表中呈现每个模型的部分,那么我洗耳恭听。这是我的第一个真正的MVC应用程序,所以我仍在学习框架和设计模式。因此,请注意,未来的人们,他们正试图像我一样,在客户端以编程方式提交的情况下,如何提交MVC操作(通过FormUrlEncodedContent):这意味着只需在创建FormUrlEncodedContent的KVP列表中循环并添加同一个键,多次使用不同的值(毕竟它只是一个列表,不是一个正确的字典,所以这是允许的(并且有效!)谢谢。遗憾的是,我不能使用Html助手,但是硬编码的值只是用于原型设计,所以它可以做到这一点。
<a href="<%= Url.Action("CreateMultiple")%>?ids=2&ids=1&ids=3">Test link</a>