2010-11-22 3 views
0

MVC에 합리적으로 새로운 기능입니다. 내 문제는 열거 형에 따라 호출되는 3 가지 ActionResult가있는 컨트롤러가 있다는 것입니다.
세 가지 작업 결과는 모두 같은보기이지만보기 모델과 다른 목록을 반환합니다. 보기에서 사용자는 목록의 항목을 클릭하고 항목의 ID를 기반으로 세부 정보를 볼 수 있어야합니다.
예 : 사이트/시설/라이브러리는 라이브러리 목록을 반환하고 사이트/시설/라이브러리/1은 세부 정보를 반환합니다. 이는 전체 경로를 입력 할 때 잘 작동하지만보기 자체가 목록에서 항목에 앵커에게변수 ActionResult에 상대적인 MVC URL

<a href="@item.ID">@item.Name</a> 

을 클릭에 URL 사이트/시설/1 대신 사이트/시설/라이브러리/1을 반환합니다. 호출 할 액션이 동적 인 ActionLink를 사용할 수 없습니다. 각 유형별로 다른보기를 작성하여 해결할 수 있음을 알고 있지만 다른 방법이 있는지 궁금합니다.

미리 감사드립니다.

답변

1

당신은 이러한 코드 (자바 스크립트 트릭)를 사용할 수 있습니다 : 당신이 HREF 속성을 사용하려는 경우에는 코드를 사용할 수 있습니다,

<a href="" onclick="window.location = window.location + @item.ID">@item.Name</a> 

을 또는 : 그에서 (

<%=Html.ActionLink(item.Name, "Facilities", ViewData("ActionName"), new {id = item.ID}) %> 

을 컨트롤러에서 ViewData ("ActionName")을 지정해야하는 경우).

+0

Ive는 두 번째 옵션을 시도했고 그 단순한 Im은 부끄럽다. 나는 그것을 생각하지 않았다. Javascript 없이도 모바일 개발을 위해 이상적으로 작동해야하며 모든 휴대 전화에서 자바 스크립트를 사용할 수있는 것은 아닙니다. 두 번째 옵션은 훌륭합니다. 감사. – Chiefy

1

하나의 액션 만 가질 수 있도록하지만, 대신 인수가 필요하며, 인수에 따라보기에 다른 목록을 푸시 할 수 있습니다 (아마도 3 가지 다른 "도우미 기능"을 사용하는 것이 좋습니다) . 적어도 당신이 묘사하고있는 것을 구현하는 방법은 무엇입니까?

행운을 빈다.

+0

원래 어떻게 구현했는지, 누군가가 목록의 URL (또는 북마크)을 복사 한 다음 다시 사용하면 인수가 필요하지 않고 실패합니다. – Chiefy

+0

왜 복사 및 북마크하지 않습니까? 인수가 URL에 포함되어 있기 때문에 너무 따라 와야합니다! (사용자가 그 부분을 지우지 않는 한 그런 문제가 아닌가? ^^) 멋진 라우팅을 사용하면 완벽한 URL을 얻을 수 있습니다. 그러나 당신이 행복해하는 답변을 찾았다면 좋겠다. – Robin