【问题标题】:Passing non selected listboxfor values back to controller将非选定列表框的值传递回控制器
【发布时间】:2016-04-16 22:37:35
【问题描述】:

我的视图上有一个 listboxfor,我用用户列表填充。我可以在这个列表框(从另一个列表框)中添加用户,也可以从中添加用户。

我可以将值传递回控制器,但我必须在列表框中选择用户才能发生这种情况。我不想选择用户..只需传回列表框中的任何内容。

在我看来:

@Html.ListBoxFor(m => m.SelectedIDs, DropdownHelper.GetGroupMembers(Model.Id), new { size = 20, @class = "select field small", @style = "width:200px" })

在我的视图模型中:

    public int[] SelectedIDs { get; set; }

控制器 HtttPost Edit 采用视图模型,并且 SelectedIDs 确实包含用户的 id,但仅在选择时才包含。

我只是不想在列表框中选择用户...只是回传那里的任何值。

有什么想法吗?

谢谢

【问题讨论】:

  • 将相同的数据放入隐藏控件中,它会随表单一起发布。
  • 那么不要为此使用列表框。使用复选框列表,以便用户可以通过选中/取消选中复选框来添加或删除用户
  • 可能有数百个用户。
  • @thegunner,这有什么不同。是否滚动列表框中的项目以选择它们或是否滚动检查列表框都无关紧要。
  • 如果列表框中的用户列表首先来自服务器,那么为什么还要麻烦再次将它们全部发回 - 回发时只需从您用来填充列表框的同一来源获取它们服务视图?

标签: c# asp.net-mvc entity-framework


【解决方案1】:

如果我遗漏了任何内容,有人会纠正我,但基本上你有五个选项可以将数据传递到服务器: 饼干 请求参数 阿贾克斯 网络套接字 POST(表单变量)

您似乎想发布数据,所以对我来说隐藏输入是最合适的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多