【发布时间】:2020-09-22 11:51:13
【问题描述】:
一直在尝试找出我的 AJAX 调用不起作用的原因。我有数据网格,用户可以在其中选择要删除的行;然后按下删除按钮应将这些选定行的 ID 作为数组发送到我的控制器进行处理。然而,我的控制器只接收一个空的 int 数组。
这是我的代码,如果有人能看出我做错了什么,将不胜感激:
@(Html.DevExtreme().Button()
.ID("gridDeleteSelected")
.Text("Purge Selected")
.Height(34)
.Type(ButtonType.Default)
.StylingMode(ButtonStylingMode.Outlined)
.Width(120)
.Disabled(true)
.OnClick("purgeSelectedBatches")
)
我的相关 JavaScript(当用户在数据网格中选择行时调用 selectedLoadContexts 方法):
<script>
var recordsToBePurged;
function selectLoadContexts(data) {
var purgeButton = $("#gridDeleteSelected").dxButton("instance");
purgeButton.option("disabled", !data.selectedRowsData.length);
recordsToBePurged = data;
}
function purgeSelectedBatches() {
var selectedKeys = recordsToBePurged.selectedRowKeys;
console.log("selected keys = " + selectedKeys);
$.ajax({
url: "@Url.Action("PurgeSelected", "Purge")",
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: 'JSON',
data: JSON.stringify({selectedKeys : selectedKeys}),
success: function() {
var url = '@Url.Action("PurgeSelected", "Purge")' +
'?selectedKeys=' +
selectedKeys;
window.location = url;
}
}).done(function() {
DevExpress.ui.notify("Purging selected batches marked as Do Not Retain: ", "info", 1500);
console.log("Purging selected batches marked as Do Not Retain");
});
}
</script>
我的控制器方法:
[HttpPost]
[Route("[action]")]
public IActionResult PurgeSelected(int[] selectedKeys)
{
//process array of keys and remove selected records
return Ok($" records removed");
}
【问题讨论】:
标签: javascript c# ajax asp.net-core devexpress