Post模型和2个复选框列表到控制器与Jquery Ajax
Post model and 2 checkbox lists to controller with Jquery Ajax
我想发送2个列表,包含选中的复选框的值以及我的模型使用JQuery Ajax从EditorTemplate被用作部分视图。
@model EsdpExport.View_Models.ProductLineCreateViewModel
@using EsdpHelpers
<script type="text/javascript">
$('#add-list').click(function () {
var commoditiesToRemove = $('input[type="checkbox"].removeCheckbox:checked').map(function () {
return $(this).val();
}).toArray();
var commoditiesToAdd = $('input[type="checkbox"].addCheckbox:checked').map(function () {
return $(this).val();
}).toArray();
$.ajax({
type: 'POST',
url: { @Url.Action("UpdateCommodityList", "ProductLine") },
contentType: "application/json; application/json; application/json",
data: { availableCommoditiesToAdd: commoditiesToAdd,
currentCommoditiesToRemove: commoditiesToRemove,
@Model.ToJson() },
success: function (result) {
$('#CommodityTable').html(result);
},
});
return false;
});
$('#remove-list').click(function () {
var commoditiesToRemove = $('input[type="checkbox"].removeCheckbox:checked').map(function () {
return $(this).val();
}).toArray();
var commoditiesToAdd = $('input[type="checkbox"].addCheckbox:checked').map(function () {
return $(this).val();
}).toArray();
$.ajax({
type: 'POST',
url: { @Url.Action("UpdateCommodityList", "ProductLine") },
contentType: "application/json; application/json; application/json",
data: {
availableCommoditiesToAdd: commoditiesToAdd,
currentCommoditiesToRemove: commoditiesToRemove,
@Model.ToJson() },
success: function (result) {
$('#CommodityTable').html(result);
},
});
return false;
});
</script>
<div id="CommodityTable">
@Html.WetStyleValidationSummary(true)
<table title="Current Commodities">
<tr>
<th>
Commodity Name
</th>
<th></th>
</tr>
@for (int i = 0; i < Model.CurrentCommodities.Count; i++)
{
<tr>
<td>
@Html.HiddenFor(model => Model.CurrentCommodities[i].Name)
@Html.DisplayFor(model => Model.CurrentCommodities[i].Name)
</td>
<td>
@Html.HiddenFor(model => Model.CurrentCommodities[i].Id)
<input name="currentCommoditiesToRemove" class="removeCheckbox" type="checkbox" value="@Model.CurrentCommodities[i].Id">
</td>
</tr>
}
</table>
<input id="remove-list" name="remove" type="button" value="Remove from Product" class="button button-accent ui-link" />
<table title="Searched Commodities" id="Searched">
<thead>
<tr>
<th>
Commodity Name
</th>
<th></th>
</tr>
@for (int j = 0; j < Model.AvailableCommodities.Count; j++)
{
<tr>
<td>
@Html.HiddenFor(model => Model.AvailableCommodities[j].Name)
@Html.DisplayFor(model => Model.AvailableCommodities[j].Name)
</td>
<td>
@Html.HiddenFor(model => Model.AvailableCommodities[j].Id)
<input name="availableCommoditiesToAdd" class="addCheckbox" type="checkbox" value="@Model.AvailableCommodities[j].Id" />
</td>
</tr>
}
</table>
<input id="add-list" name="add" type="button" value="Add To Product" class="button button-accent ui-link" />
</div>
这是控制器的动作方法:
[HttpPost]
public ActionResult UpdateCommodityList(string[] availableCommoditiesToAdd,
string[] currentCommoditiesToRemove, ProductLineCreateViewModel productModel)
{
}
由于某些原因,我的POST没有到达ActionMethod。为什么?
$的Url参数。Ajax是一个字符串,而不是对象,所以把这行改成这样:
url: "@Url.Action("UpdateCommodityList", "ProductLine")",
相关文章:
- 如何在Jquery中发布后将值从视图返回到控制器
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 使用 JQUERY AJAX (Spring MVC) 从控制器中删除
- angularjs:访问angular控制器中的jquery变量
- 如何从页面中的jquery调用angular js函数控制器
- 如何从jQuery设置控制器或全局变量的属性
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- jquery -ajax 不检查控制器的布尔值
- 使用 $.getJson 方法从 jquery 调用 C# MVC 控制器方法
- 如何将从jQuery创建的数组传递给控制器方法
- 需要Javascript或jquery代码将数据传递给控制器
- 如何确保Rails资产管道中的JQuery脚本在控制器特定的JS之后被调用
- 如何从控制器返回对象列表并使用JQuery(SpringMVC,ajax)显示它们
- 基于控制器值打开jquery中的列表项
- 如何将表单数据从jQuery获取到ASP.NET控制器
- Mvc4将Jquery可排序列表项的顺序保持到控制器
- Codeigniter Jquery Ajax,Can't将控制器中的数据访问回html表单
- 我可以使用javascript但不使用jquery或ajax将参数发送到php控制器吗
- 如何将表单值从jquery ajax传递到codeigniter控制器
- 如何使用javascript/jquery在CodeIgniter的控制器中调用函数