2011-01-10 3 views
1

내보기에는 직원 목록과 각 옆에 확인란이 있습니다. 사용자는 1 명 이상의 직원을 선택하고 제출을 클릭하면 선택한 각 직원의 세부 정보를 볼 수있는 다음 페이지로 이동합니다. 그래서 한 컨트롤러에서 다음 컨트롤러로 직원 번호 목록을 보내려고합니다. 내가 할 수있는 한 가지 방법은 Session 개체를 사용하는 것입니다. 하지만 그게 최선의 방법인가요?한 컨트롤러에서 다른 컨트롤러로 매개 변수 목록을 전달하는 가장 좋은 방법

+1

이 기능은 ASP.NET MVC에서 바로 사용할 수 있습니다. 똑같은 이름의 체크 박스 목록을 출력하고, 수신 액션에 열거 가능한 ID를 갖도록합니다. – bzlm

답변

1

대신 다른 컨트롤러에 매개 변수를 보내는보기가 있어야합니다. 이 경우 직원 목록보기에서 세부 정보 컨트롤러로 이동합니다. 선택한 종업원 ID를 세부 정보 컨트롤러의 메서드로 보내도록 목록보기에서 양식을 변경합니다. 세부 컨트롤러에서 각 직원 ID에 대해 필요한 세부 정보를 데이터베이스에 쿼리 할 수 ​​있습니다.

+0

반 패턴입니다. 조회수는 다시 게시 할 위치를 결정해서는 안됩니다. 이 작업을 매우 신속하게 수행하는 데 문제가 발생합니다. 예 : 모델이 유효하지 않습니다. 요청이 어디에서 왔는지 파악하고 올바른 ViewResult를 반환해야합니다. –

+0

죄송합니다, 동의하지 않습니다. 이것은 Visual Studio의 자동 생성 코드가 –

+0

인 Lee가 그의 대답을 삭제했으며 그 이유를 모른다는 접근 방식입니다. 당신의 대답이 효과가 있다고 생각합니다. 문제는 그것이 좋은 기술인지 아닌지에 관한 것입니다. 리의 주장에 논리가 있음을 알 수 있습니다. 그러나 다른 한편으로는 당신의 해결책이 일반적인 관행이라면 아마도 그것이 좋은 주장 일 것입니다. – arame3333

0

직원을 전달하는 대신 선택한 직원 ID 목록을 세부 정보 컨트롤러에 POST 한 다음 저장소에서 해당 세부 정보를 가져올 수 있습니다.

+0

나는 너가 이것을 할 수 있다고 생각하지 않는다. 기본적으로 리디렉션을 통해 POST/GET으로 목록/배열을 전달할 수 없습니다. –

+0

글쎄, 쉼표로 구분 된 매개 변수로 ID를 전달한 다음 사용자 지정 모델 바인더를 사용하거나 직접 GET 또는 POST 요청을 세부 정보를 보여주는 최종 동작으로 보내도록 양식에 지시 할 수 있습니다. 이렇게하면 다시 리디렉션 할 필요가 없습니다. –

관련 문제