Отправка простого массива в контроллер

0

Проводка массива 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)

без успеха.

  • 0
    показать свой полный вызов AJAX
  • 0
    Можете ли вы показать нам свой вызов Ajax?
Показать ещё 1 комментарий
Теги:
asp.net-mvc
.net-4.5

1 ответ

1
Лучший ответ

Чтобы отправить список, я думаю, вам нужно будет сделать ваши данные:

ids[]:39
ids[]:54

К этому:

ids:39
ids:54

В своем ajax/post-вызове попробуйте добавить traditional: true чтобы он избавился от []

Обратитесь к этому для получения дополнительных вопросов: Как отправить список int с jQuery в ASP.NET MVC Model Model Binder

Ещё вопросы

Сообщество Overcoder
Наверх
Меню