如何将修改后的数据从双列表框传递到控制器
How To pass the modified data from dual listbox to controller?
我创建了一个包含两个列表框的表单,可以在其中将项目从一个列表框移动到另一个列表框。
视图也可以正确加载,但我还没有弄清楚如何将修改后的列表框数据发送回控制器。
视图代码如下:
<script>
$(function() {
$(document)
.on("click", "#MoveRight", function() {
$("#SelectLeft :selected").remove().appendTo("#SelectRight");
})
.on("click","#MoveLeft", function() {
$("#SelectRight :selected").remove().appendTo("#SelectLeft");
});
});
@Html.Hidden("RedirectTo", Url.Action("UserManagement", "Admin"));
<h2>User</h2>
<div class="container">
<form role="form">
<div class="container">
<div class="row">
<div class="col-md-5">
<div class="form-group">
<label for="SelectLeft">User Access:</label>
<select class="form-control" id="SelectLeft" multiple="multiple" data-bind="options : ownership, selectedOptions:ownership, optionsText:'FirstName'">
</select>
</div>
</div>
<div class="col-md-2">
<div class="btn-group-vertical">
<input class="btn btn-primary" id="MoveLeft" type="button" value=" << " />
<input class="btn btn-primary" id="MoveRight" type="button" value=" >> " />
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label for="SelectRight">Owners:</label>
<select class="form-control" multiple="multiple" id="SelectRight" multiple="multiple" data-bind="options : availableOwners, selectedOptions:availableOwners, optionsText:'FirstName'">
</select>
</div>
</div>
</div>
</div>
</form>
</div>
<script>
var data=@(Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)));
var selectedOwners = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.AccessOwners));
var availableOwners = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.Owners));
function viewModel() {
this.username=ko.observable(data.Username);
this.password=ko.observable(data.Password);
this.email=ko.observable(data.Email);
this.isActive=ko.observable(data.IsActive);
this.userId = ko.observable(data.UserId);
this.ownership=ko.observableArray(selectedOwners);
this.availableOwners = ko.observableArray(availableOwners);
this.submit = function()
{
$.ajax({
url: '@Url.Action("UserSave", "Admin")',
type: 'POST',
data: ko.toJSON(this),
contentType: 'application/json',
});
window.location.href = url;
return false;
}
this.cancel = function()
{
window.location.href = url;
return false;
}
};
ko.applyBindings(new viewModel());
var url = $("#RedirectTo").val();
如果有人能建议在执行提交函数时使用修改后的列表填充数据,将所有选定的选项传回控制器的方法,我将不胜感激。
谢谢!
在表单提交之前,将一侧项目值保存在隐藏的输入元素中。(列表框项的逗号分隔值。隐藏元素的值通过提交表单发送到服务器。在控制器中,您可以执行后续操作。
相关文章:
- 将项目从列表传递到控制器
- 从填充了 AJAX 的下拉列表中获取控制器的操作方法中的值
- MVC 下拉列表更改事件未正确调用控制器中的操作
- 如何将对象列表传递到MVC4中的控制器方法
- 如何从控制器返回对象列表并使用JQuery(SpringMVC,ajax)显示它们
- 控制器中的筛选列表没有'不起作用
- 如何将列表从C#angular传递到angular控制器
- 我们可以将控制器中的JSON数据(MM/DD/YYYY格式)与今天的's日期,并在数组中显示筛选列表
- 基于控制器值打开jquery中的列表项
- 在不涉及控制器的情况下对MVC视图列表中的项进行排序
- Mvc4将Jquery可排序列表项的顺序保持到控制器
- 列表在控制器中初始化
- 如何将带有数组列表的$(“form”).serialize()从AJAX方法传递到mvc控制器
- 如何使用ajax调用获取数组列表数据(将数组列表数据控制器传递给ajax方法)
- 如何将所选项目从角度 UI 下拉列表发送回角度控制器
- AngularJs 不显示从控制器填充的列表
- 将对象列表从控制器传递到 MVC4 中的视图
- 如何将下拉列表中所选项的值作为参数传递给控制器(Google 图表)
- 有没有办法从木偶.js中的显示控制器访问在列表控制器中创建的布局区域
- 使用Dashcode's没有DataSource选项的列表控制器