2014-09-11 3 views
0

대부분 내 링크 (아래 예 참조)는 제대로 작동하지만 링크가 연결되는 실제 URL이 의미가없는 경우가 종종 있습니다. 모든.값이 전달되는 MVC의 링크 문제

작업 링크 예
이 링크는 완벽하게 작동합니다. 이 클래스에는 페이지에 링크가 표시 될 수 있도록 배경 이미지가 포함되어 있습니다.

@Html.ActionLink(" ", "Edit", new { id = user.PKey }, new { @class = "edit-button" }) 

이 링크는 (1)의 ID 값은 전달 된 가정 ~/Users/1로 이동.

깨진 링크
이 링크는 전혀 작동하지 않습니다

@Html.ActionLink(User.Identity.Name, "Manage", "Account", new { name = User.Identity.Name }) 

이 링크는 환영 메시지의 일부로 나타납니다. 링크 텍스트는 사용자 이름, 그래서 나는 ~/Account/Manage/ortund로 이동 거라 생각하지만 대신은 이 계정 컨트롤러에 ActionResult 관리로 아직

~/Home/Manage?Length=7로 이동 아무것도하지 않는다,하지만 난 그것을 코딩에 도착하면, 그것은 것입니다 로그인 한 사용자가 자신의 프로필을 업데이트하고 활동을 볼 수있게하는보기 만 반환하면됩니다.

내가 알 수있는 한,이 두 링크에는 그 중 하나에 설정된 클래스 외에 다른 차이점이 없습니다. 누군가 제 2 연결 고리가 작동하지 않는 이유를 이해하도록 도와 줄 수 있습니까?

미리 감사드립니다.

+0

가능한 [MVC3, Razor. actionlink가 URL에서 길이 7을 자동 생성하는 이유는 무엇입니까?] (http://stackoverflow.com/questions/4357856/mvc3-razor-why-actionlink-autogenerating-length-7-in-url). – Zabavsky

+0

귀하의 질문에 답변하지 말고 중복 된 것으로 마감하십시오. 새 질문을하기 전에 검색을 사용하십시오. – Zabavsky

+0

@Zabavsky 해당 복제본이 아닙니다. 링크 된 질문에 대한 대답이 작동 링크가되지 않았습니다. – Ortund

답변

1

원래 질문에 대답하기 위해 잘못된 과부하가 사용되었습니다. 이 경우에 정확한 과부하이다

링크 텍스트, ActionResult, 제어기, RouteValues ​​(객체) HTMLAttributes (오브젝트) - 예 :

@Html.ActionLink(User.Identity.Name, "Manage", "Account", new { name = User.Identity.Name }, null) 

질문의 두 번째 부분 - 변수 있도록 "이름 "쿼리 문자열 값 대신 URL의 일부 - 예 : 에서 :

~/계정/관리/이름 = ortund

~/계정/관리/ortund

당신은 MVC는 것을 알 수 있도록 경로의 설정에 경로를 추가 할 필요가

URL의 세 번째 부분에 "name"값이 있어야합니다. 다음 경로로 완료해야합니다.

routes.MapRoute("AccManage", "Account/Manage/{name}", new {.controller = "Account", .action = "Manage"}); 
관련 문제