ASP.NET MVC 3을 배우려고했지만 모든 것이 잘 작동하지 않는 것처럼 보입니다.ASP.NET MVC 기본 라우팅 (매개 변수 포함)
public ViewResult List(string user, int page = 1)
{
//snip
}
내 경로는 다음과 같습니다 :
routes.MapRoute(
null,
"Page{page}",
new { Controller = "Contract", action = "List" }
);
routes.MapRoute(
null,
"Page{page}",
new { Controller = "Contract", action = "List", user = "", page = 1 }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
의미
@Html.ActionLink("Contracts", "List", "Contract",
new { User.Identity.Name, page=1 })
가 ContractController에서이 방법을 액세스 할 수 :
내가 메인 페이지에 ActionLink이 링크는 'Home'컨트롤러에서 'List'동작을 찾을 수 없으므로 404 오류를 반환합니다. 분명히 그것은 첫 번째 경로 중 하나를 사용하지 않았다는 것을 의미합니다.
ActionLink에 매개 변수를 추가하기 전에 모든 것이 효과적이었습니다. 그래서 기본적으로 내가 뭘 잘못하고 있습니까?
대단히 감사합니다. (
@Html.ActionLink("Contracts", "List", "Contract",
new { User.Identity.Name, page = 1 }, null)
최종 PARAM로 null
추가 : 당신은 절대적으로 올바르게 그러나 actionlink을 다른 모든 비트를하고있는
참고 : 수신 요청에서 첫 번째 및 두 번째 경로를 구분할 수 없기 때문에 문제가 계속 발생합니다. 두 번째 요청에 의해 처리되어야하는 모든 요청 (및 출력 링크도)은 첫 번째 요청에 의해 수행됩니다. –
모든 것이 현재 올바르게 작동하는 것 같습니다. 나는 길 중 하나가 불필요하다는 것을 놀랍지는 않다. 나는 아직도 내 머리를 라우팅 주위에두고있다. 처음 두 경로가 서로 바뀌면 차이가 있습니까? – XN16