#asp.net-core
Вопрос:
как выбрать все идентификаторы в контроллере, вот мой jquery ` $(документ).готово(функция () {
$("#checkAll").click(function () {
$(".checkBox").prop('checked',
$(this).prop('checked'));
});
$("#delete").click(function () {
var selectedIDs = new Array();
$('input:checkbox.checkBox').each(function () {
if ($(this).prop('checked')) {
selectedIDs.push($(this).val());
}
});
var options = {};
options.url = "/home/AjaxMethod";
options.type = "POST";
// options.data = JSON.stringify(selectedIDs);
options.data = selectedIDs;
options.contentType = "application/json";
options.dataType = "json";
options.success = function (msg) {
alert(msg);
};
options.error = function () {
alert("Error while deleting the records!");
};
$.ajax(options);
});
});
публичный JsonResult AjaxMethod(строка[] Выбранные идентификаторы)
{
}`
Комментарии:
1. Можете ли вы подробнее рассказать о проблеме, с которой вы сталкиваетесь, о том, чего вы ожидаете, и о том, что вы уже пробовали?
2. вот мой метод действия контроллера
3. публичный JsonResult AjaxMethod(строка[] a) { }
4. Привет @RAKESHYADAV, Мой ответ помог вам решить вашу проблему? Если да,не могли бы вы, пожалуйста, принять в качестве ответа? Если нет,не могли бы вы, пожалуйста, продолжить, чтобы сообщить мне об этом? См.: Как принять в качестве ответа . Спасибо.
Ответ №1:
Вам нужно изменить свой js, как показано ниже:
options.data = JSON.stringify(selectedIDs);
И обязательно добавьте [FromBody]
перед своим параметром:
[HttpPost]
public JsonResult AjaxMethod([FromBody]string[] selectedIDs) {
return Json(selectedIDs);
}
Вот целая рабочая демонстрация:
Вид:
<input type="checkbox" id="checkAll">Check All
<hr />
<input type="checkbox" class="checkBox" value="1">Item 1
<input type="checkbox" class="checkBox" value="2">Item 2
<input type="checkbox" class="checkBox" value="3">Item3
<button type="button" id="delete" >Delete</button>
@section Scripts
{
<script>
$("#checkAll").click(function () {
$(".checkBox").prop('checked',
$(this).prop('checked'));
});
$("#delete").click(function () {
var selectedIDs = new Array();
$('input:checkbox.checkBox').each(function () {
if ($(this).prop('checked')) {
selectedIDs.push($(this).val());
}
});
console.log(selectedIDs);
var options = {};
options.url = "/home/AjaxMethod";
options.type = "POST";
options.data = JSON.stringify(selectedIDs);
//options.data = selectedIDs;
options.contentType = "application/json";
options.dataType = "json";
options.success = function (msg) {
alert(msg);
};
options.error = function () {
alert("Error while deleting the records!");
};
$.ajax(options);
});
</script>
}
Контроллер:
[HttpPost]
public JsonResult AjaxMethod([FromBody]string[] selectedIDs) {
return Json(selectedIDs);
}
Результат: