Ajax – передать строку [] в контроллер С#C#

Место общения программистов C#
Ответить
Anonymous
 Ajax – передать строку [] в контроллер С#

Сообщение Anonymous »

Ядро MVC.
JS:

Код: Выделить всё

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");
}
});
}
Необработанный запрос выглядит так:

Код: Выделить всё

["Name1","Name2"]
C#

Код: Выделить всё

   [HttpPost]
public virtual ActionResult Register(object currentSelection)
Я пробовал без JSON.stringify, устанавливая данные: {currentSelection: JSON.stringify(currentSelection)}
, пробовал добавить это традиционно: true
Также я попробовал добавить [FromBody] в контроллер, вместо объекта попробовал List или string[].Ничего не работает. Я получаю HTTP400 каждый раз. Когда я изменил код на запрос GET без каких-либо данных и т. д., все работает, поэтому нет проблем с URL/связью.
Может ли кто-нибудь мне с этим помочь?

Подробнее здесь: https://stackoverflow.com/questions/786 ... controller
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»