Как я передаю список целых чисел к действию MVC?

У меня есть действие, которое зависит от списка целых чисел. Мой первый инстинкт должен был просто объявить действие со Списком.

Я пытался объявить действие в контроллере как:

public ActionResult EditMultiple(List<int> ids)

и, по моему мнению, звоните как так:

<%= Html.ActionLink("EditMultiple", "EditMultiple", new { ids = new List<int> {2, 2, 2} })%>

Хотя это составляет Список, пусто, когда я поместил точку останова в действие. Кто-либо знает, почему или имеют альтернативный подход?

Добавление большего количества детали о сценарии:

Я пытаюсь "Отредактировать" несколько объектов одновременно. Я уже в точке, где у меня есть приложение, которое позволяет мне создавать/редактировать/просматривать информацию о книгах в библиотеке. У меня есть частичное представление, которое позволяет пользователю редактировать информацию о единственной книге и сохранять ее к базе данных.

Теперь я хотел бы создать Представление, которое позволяет пользователю редактировать информацию о нескольких книгах с единственной кнопкой отправки. Я создал действие EditMultiple, который просто представляет частичное для каждой книги (моя модель для этого представления является Списком), и добавляет кнопку отправки впоследствии.

7
задан Justin 8 July 2010 в 23:20
поделиться

2 ответа

Да. Связыватель модели по умолчанию может связывать идентификаторы с любой коллекцией ICollection. Но вы должны отправить несколько параметров с одним и тем же именем. Это исключает использование вспомогательного метода ActionLink. Вы можете использовать url helper Action и добавить идентификаторы к ссылке следующим образом:

<a href="<%= Url.Action("CreateMultiple")%>?ids=2&ids=1&ids=3">Test link</a>

Вот ссылка из блока Хаака.

4
ответ дан 7 December 2019 в 09:56
поделиться

Я не думаю, что

new List<int> {2, 2, 2}

должным образом конвертируется в POST, который можно привязать, вы хотите отправить

Ids=1&Ids=2&Ids=3

список, разделенный запятыми, также может работать, я не уверен, я не использую дрянной связыватель моделей по умолчанию.

Почему ты вообще это делаешь? Надеюсь, это псевдокод для чего-то еще ...

2
ответ дан 7 December 2019 в 09:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: