I'm using ASP.NET Core MVC.
Javascript:
var currentSelection = [];
function selection_changed(selectedItems) {
var dataGrid = $("#myContainer").dxDataGrid("instance");
var data = selectedItems.selectedRowsData;
if (data.length > 0) {
currentSelection = data
.map((value) => `${value.Name}`)
} else {
currentSelection = [];
};
}
function create(e) {
$.ajax({
url: "@Url.Action("Register", "MyController")",
contentType: "application/json; charset=utf-8",
dataType: 'json',
type: 'POST',
data: JSON.stringify(currentSelection),
success: function (response) {
showToast("success");
},
error: function (xhr, status, error) {
showToast("error");
}
});
}
Unprocessed request looks like:
["Name1","Name2"]
C#
[HttpPost]
public virtual ActionResult Register(object currentSelection)
I have tried without JSON.stringify, setting
data: {currentSelection: JSON.stringify(currentSelection)}
tried adding this traditional: true.
I have also tried adding [FromBody] to controller, instead of object tried List<string> or string[].
Nothing is working. I'm getting HTTP 400 error every time. When I changed code to GET request without any data etc., everything is working, so no URL/communication issues.
Can someone help me with this?
