2011-01-10 3 views
1

В моем представлении У меня есть список сотрудников и флажок рядом с каждым. Пользователь выбирает 1 или более сотрудников, и когда он нажимает кнопку «Отправить», он переходит на следующую страницу, где видит детали каждого выбранного сотрудника. Итак, я хочу отправить список номеров сотрудников с одного контроллера на следующий. Один из способов сделать это - использовать объект Session. Но это лучший способ?Лучший способ передать список параметров от одного контроллера к другому

+1

Это работает из-за коробки в ASP.NET MVC. Просто выпустите список флажков с одинаковыми именами и получите действие приема для перечисления идентификаторов. – bzlm

ответ

1

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

+0

Это анти-шаблон. Мнения не должны принимать решения о том, куда они отправляются. Вы быстро столкнетесь с этим с проблемами. Например, допустим, что модель недействительна. Вам нужно будет выяснить, откуда пришел запрос, и вернуть правильный ViewResult. –

+0

Извините, я не согласен. это тот подход, который делает код автогенера в визуальной студии –

+0

Ли удалил свой ответ, и я не знаю почему. Я думаю, что ваш ответ работает, и вопрос в том, является ли это хорошей техникой. Я вижу логику в аргументе Ли, что это не так, но, с другой стороны, если ваше решение является обычной практикой, то, вероятно, есть хорошие аргументы. – arame3333

0

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

+0

Я не думаю, что вы можете это сделать. По умолчанию вы не можете передать список/массив из POST в GET через перенаправление. –

+0

Ну, вы можете передать идентификаторы в качестве параметра, разделенного запятыми, а затем использовать настраиваемое связующее устройство или напрямую проинструктировать форму для отправки запроса GET или POST для окончательного действия, которое покажет детали. Таким образом, вам не нужно перенаправлять еще раз. –

Смежные вопросы