#jquery #asp.net-mvc #ajax #arrays
#jquery #asp.net-mvc #ajax #массивы
Вопрос:
у меня есть функция контроллера, которая ранее содержала целые числа в качестве каждого раздела в URL (который я настраиваю в файле маршрутизации), но теперь одним из параметров должен быть массив целых чисел. Вот действие контроллера:
public JsonResult Refresh(string scope, int[] scopeId)
{
return RefreshMe(scope, scopeId);
}
в моем javascript у меня было приведенное ниже, но теперь мне нужно, чтобы scopeId был целочисленным массивом.
как я могу настроить URL для публикации с помощью jquery, javascript
var scope = "Test";
var scopeId = 3;
// SCOPEID now needs to be an array of integers
$.post('/Calendar/Refresh/' scope '/' scopeId, function (data) {
$(replacementHTML).html(data);
$(blockSection).unblock();
}
Ответ №1:
Следующее должно выполнить эту работу:
var scope = 'Test';
var scopeId = [1, 2, 3];
$.ajax({
url: '@Url.Action("Refresh", "Calendar")',
type: 'POST',
data: { scope: scope, scopeId: scopeId },
traditional: true,
success: function(result) {
// ...
}
});
и если вы используете ASP.NET MVC 3 вы также можете отправить запрос в виде объекта JSON:
$.ajax({
url: '@Url.Action("Refresh", "Calendar")',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ scope: scope, scopeId: scopeId }),
success: function(result) {
// ...
}
});
Ответ №2:
Вот пример из API jquery для $.post()
Пример: передать массивы данных на сервер (по-прежнему игнорируя возвращаемые результаты).
$.post("test.php", { 'choices[]': ["Jon", "Susan"] }, function() { //do stuff });
Комментарии:
1. Я не думаю, что
[]
inchoices[]
нужен.2. @Omar Это был пример на сайте jQuery. Просто задание вырезать / вставить. api.jquery.com/jQuery.post