Проводка массива ints
на мой MVC
контроллер, похоже, приводит к тому, что значение равно null
.
Данные формы (разобранные) указывают, что каждый элемент массива размещается отдельно:
ids[]:39
ids[]:54
Что, кажется, имеет смысл, когда я читаю, что данные формы могут быть опубликованы только как пары ключ/значение.
Мое действие контроллера определяется следующим образом:
[HttpPost]
[Authorize]
public JSONResult SubmitApprovedUploadedPhotoIds(List<int> ids)
{
try
{
if (ids == null)
throw new ArgumentNullException("ids");
// ...
}
// ...
}
Основная часть моего ajax POST:
// 'ids' is an array of ints
$.ajax({
url: "/MyController/SubmitApprovedUploadedPhotoIds",
cache: false,
data:
{
ids: ids
},
dataType: "json",
type: "POST",
});
Я хотел бы, чтобы массив опубликованных идентификаторов заполнил переменную ids
в действии MVC
.
Я попытался изменить почтовый индекс:
{
ids: $(ids).serializeArray()
},
и попытались изменить действие MVC
:
public JSONResult SubmitApprovedUploadedPhotoIds(int[] ids)
без успеха.
Чтобы отправить список, я думаю, вам нужно будет сделать ваши данные:
ids[]:39
ids[]:54
К этому:
ids:39
ids:54
В своем ajax/post-вызове попробуйте добавить traditional: true
чтобы он избавился от []
Обратитесь к этому для получения дополнительных вопросов: Как отправить список int с jQuery в ASP.NET MVC Model Model Binder