У меня есть действие, которое зависит от списка целых чисел. Мой первый инстинкт должен был просто объявить действие со Списком.
Я пытался объявить действие в контроллере как:
public ActionResult EditMultiple(List<int> ids)
и, по моему мнению, звоните как так:
<%= Html.ActionLink("EditMultiple", "EditMultiple", new { ids = new List<int> {2, 2, 2} })%>
Хотя это составляет Список, пусто, когда я поместил точку останова в действие. Кто-либо знает, почему или имеют альтернативный подход?
Добавление большего количества детали о сценарии:
Я пытаюсь "Отредактировать" несколько объектов одновременно. Я уже в точке, где у меня есть приложение, которое позволяет мне создавать/редактировать/просматривать информацию о книгах в библиотеке. У меня есть частичное представление, которое позволяет пользователю редактировать информацию о единственной книге и сохранять ее к базе данных.
Теперь я хотел бы создать Представление, которое позволяет пользователю редактировать информацию о нескольких книгах с единственной кнопкой отправки. Я создал действие EditMultiple, который просто представляет частичное для каждой книги (моя модель для этого представления является Списком), и добавляет кнопку отправки впоследствии.
Да. Связыватель модели по умолчанию может связывать идентификаторы с любой коллекцией ICollection. Но вы должны отправить несколько параметров с одним и тем же именем. Это исключает использование вспомогательного метода ActionLink. Вы можете использовать url helper Action и добавить идентификаторы к ссылке следующим образом:
<a href="<%= Url.Action("CreateMultiple")%>?ids=2&ids=1&ids=3">Test link</a>
Вот ссылка из блока Хаака.
Я не думаю, что
new List<int> {2, 2, 2}
должным образом конвертируется в POST, который можно привязать, вы хотите отправить
Ids=1&Ids=2&Ids=3
список, разделенный запятыми, также может работать, я не уверен, я не использую дрянной связыватель моделей по умолчанию.
Почему ты вообще это делаешь? Надеюсь, это псевдокод для чего-то еще ...