#jquery #ajax #model-view-controller
#jquery #ajax #модель-представление-контроллер
Вопрос:
Я пытаюсь отправить массив из моего представления на контроллер с помощью Jquery / Ajax. У меня есть таблица со списком назначенных сотрудников и другая таблица для доступных сотрудников.
Когда пользователь нажимает на кнопку в таблице доступных сотрудников, он добавляет ее в мой массив newEmpArray и окрашивает строку в зеленый цвет. Это работает.
Но я не знаю, как отправить его на контроллер и проанализировать его для использования.
Любая помощь будет с благодарностью!
ПРОСМОТР КОДА:
<script>
$(document).ready(function () {
console.log("ready!");
var newEmpArray = [];
$(".AddEmp").on("click", function () {
$(this).parents("tr").css("background-color", "green");
var empID = parseInt($(this).parent().siblings().first().text());
newEmpArray.push(empID);
console.log(empID);
});
$("#ShowEmp").on("click", function () {
jQuery.each(newEmpArray, function (index, id) {
console.log("ID: " newEmpArray[index]);
});
});
$("form#frm").on("submit", (e) => {
e.preventDefault();
let obj = {
id: newEmpArray
};
$.ajax({
url: "@Url.Action("AddEmployee")",
method: "GET",
data: {
data: JSON.stringify(obj)
}
});
});
});
</script>
КОД КОНТРОЛЛЕРА:
public ActionResult AddEmployee(string data)
{
JObject parsedData = JObject.Parse(data);
char[] empIDS = parsedData["id"].ToString().ToArray();
return RedirectToAction("ViewEmployees");
}
Ответ №1:
У меня это работает.
Просмотр кода:
$("form#frm").on("submit", (e) => {
e.preventDefault();
$.ajax({
url: "@Url.Action("AddEmployee")",
method: "POST",
traditional: true,
data: { 'ids': newEmpArray }
});
});
Код контроллера:
public ActionResult AddEmployee(int[] ids)
{
int[] empArray = (ids);
return RedirectToAction("ViewEmployees");
}