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

发布于 2024-09-08 09:56:13 字数 582 浏览 6 评论 0原文

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

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

public ActionResult EditMultiple(List<int> ids)

在我的视图调用中像这样声明:

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

虽然它编译后列表为空,但当我在操作中放置断点时。有人知道为什么或有替代方法吗?

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

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

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

I have an action that depends on a list of integers. My first instinct was to simply declare the action with a List.

I tried declaring the action in the controller as:

public ActionResult EditMultiple(List<int> ids)

and in my View call like so:

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

Although it compiles the List is empty when I put a breakpoint in the action. Anybody know why or have an alternate approach?

Adding more detail about the scenario:

I'm trying to "Edit" multiple entities at the same time. I'm already at the point where I have an application that allows me to create/edit/view information about books in a library. I have a partial view that allows the user to edit information about a single book and save it to the database.

Now I'd like to create a View which allows the user to edit the information about multiple books with a single submit button. I've created an action EditMultiple which just renders the partial for each book (my model for this view is List) and adds the submit button afterwards.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

<逆流佳人身旁 2024-09-15 09:56:13

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

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

这是来自 Haack 区块的链接

Yes. The default model binder can bind "ids" to any ICollection. But you have to submit multiple parameters with the same name. That eliminates using the helper method "ActionLink". You can use url helper Action and append the ids to the link like so:

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

Here's the link from Haack's block.

梦魇绽荼蘼 2024-09-15 09:56:13

我认为无法

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

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

Ids=1&Ids=2&Ids=3

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

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

I dont think

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

gets properly converted into an POST that is bindable, you want to send

Ids=1&Ids=2&Ids=3

a comma separate list may also work, im not sure, i don't use the crappy default modelbinder.

Why are you doing that anyway? I hope thats pseudocode for something else...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文