【发布时间】:2014-07-22 04:02:13
【问题描述】:
我可以完美地显示列表框上的数据,但我不知道如何在单击提交按钮后将列表框数据(有和没有选择)传递/发布回控制器。不使用jquery有什么办法吗?
这是我在视图上的代码:
<%-- I have no idea what and how to pass data back to controller --%>
<%using (Html.BeginForm()){ %>
<%=Html.ListBoxFor(m => m.AvailableGroups, Model.AvailableGroup)%>
<%=Html.ListBoxFor(m => m.AssignGroups, Model.AssignGroup)%>
<input type="submit" value="Save" />
<% } %>
在模型中我这样声明变量:
public IEnumerable<string> AvailableGroups { get; set; }
public IEnumerable<SelectListItem> AvailableGroup { get; set; }
public IEnumerable<string> AssignGroups { get; set; }
public IEnumerable<SelectListItem> AssignGroup { get; set; }
这是发布操作:
[HttpPost]
public ActionResult Update(EnrollGroup enrollgroup) { //I have no idea what kind of parameter type should I get in to this action
//Perform my code here
}
解决方案
由于我找不到任何方法来返回列表框的整个列表,因此我分配了一个 jquery 函数来在提交表单之前选择所有数据。我更改了提交按钮代码下的代码:
<input type="submit" value="Save" onclick="selectAllItem()"/>
它会在AssignGroups变量下作为模型返回控制器。
【问题讨论】:
-
想知道你为什么提到“有什么方法可以在不使用 jquery 的情况下做到这一点?”???通常在发布后,您将在控制器操作中获取模型数据。您无法在后期操作中接收数据吗?你能显示你的帖子操作吗?
-
我在互联网上搜索的大部分资源都是使用 jquery 将数据传回控制器。在使用 jquery 时,我在验证伪造令牌时遇到了困难。目前我无法回发到控制器,我不知道应该在发布操作功能上设置什么参数以及如何回发。我需要在列表框中获取整组数据。
标签: c# jquery asp.net-mvc model-view-controller listbox