2011-09-30 6 views
0

첫 번째 실제 ASP.NET MVC 프로젝트에서 작업 중이며 약간의 조언이 필요합니다.ASP.NET MVC 라우팅 - 리디렉션을 통한 매개 변수 유지

내 앱에 각 부서 내의 회사, 부서 및 사용자를 만들 수있는 관리 섹션이 있다고 가정 해 보겠습니다.

회사 -> 부 -> 사용자

이 지금 내 URL이 같이 찾고 있습니다 :

난 다시 부서 목록에 사용자 목록에서 리디렉션해야하기 때문에 경우가 복잡해지고있어
Companies/Index 
Departments/Index?companyId=1 
Users/Index?companyId=1&departmentId=2 

, 나는 다음과 같이해야만한다 :

return RedirectToAction("Index", "Departments", new { companyId = model.CompanyId }); 

점점 더 중첩되면 컨트롤러 동작에 컨텍스트가 추가되도록 더 많은 매개 변수를 전달해야한다. 그들이 필요로하는 것.

이렇게 "중첩 된"기능을 가진 컨트롤러의 경로를 구성하는 더 좋은 방법이 있습니까? 그들은 다음과 같이 보일 것입니다 : Companies/{id}/Departments/{id}/Users?

다른 사람이 나에게 연결할 수있는 좋은 기사가 있습니까? 모범 사례에 대한 조언을 제공 할 수 있습니까?

답변

0

URL을 동작에 매핑하는 Global.aspx에 경로를 더 추가하면됩니다. 맨 위에 특정 경로가 있습니다. routes.MapRoute (("사용자/색인/{회사 ID} {departmentId}"새 {컨트롤러 = ""행동 = ""}, "사용자")

routes.MapRoute : 당신이 뭔가를 할 수 있습니다 "회사", "회사/색인", 새로운 {controller = "", action ("부서", "부서/색인/{companyId}", 새 {controller = "", action = ""}) routes.MapRoute = ""})

+1

답장을 보내 주셔서 감사합니다. 수동으로 경로를 설정할 수 있지만 여러 개의 경로 매개 변수를 새 컨트롤러에 전달해야한다는 것을 알고 있습니다. 예를 들어, '회사/4/부서/16/사용자/26/사진/신'에 있던 사용자의 사진을 업로드했으며 사진 목록으로 다시 리디렉션해야하는 작업에서 나를 통과시킵니다. companyId, departmentId 및 userId를 수동으로 새 경로에 추가합니다. 이것은 오류에 대한 여지가 많은 수동 코딩과 같이 보인다. 제가 기본적으로 요구하는 것은, 그것이 바로 그 길인가요, 아니면 따라야 할 더 좋은 패턴이 있습니까? 감사! – jdraper3

+0

@ jdraper3 - 이걸 우아하게 해결 했습니까? 저는 현재 같은 상황에 직면하고 있으며 인터넷에서 많은 도움을 얻을 수 없습니다. 귀하의 결의안에 대한 조언을 주시면 감사하겠습니다. 감사합니다. – Luc

+0

이봐, 나는 더 이상 직선적 인 MVC를 더 이상하지 않으며, 요즘 대부분 각도를 사용하지만, 그 당시에 내가 찾는 것처럼 실제로는 마법의 해결책이 아닙니다. 모델에 값을 저장하고 RedirectToAction 메소드에 전달하는 것은 괜찮습니다. 나는 그것을 과소 평가했습니다. – jdraper3