두 개 이상의 매개 변수를 사용하는 경로가있을 때 Html.ActionLink에 문제가 있습니다. 예를 들어, 내 Global.asax 파일에 정의 된 다음 경로 제공 :여러 경로 값을 사용하는 ASP.NET MVC URL 라우팅
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Tagging",
"{controller}.mvc/{action}/{tags}",
new { controller = "Products", action = "Index", tags = "" }
);
routes.MapRoute(
"SlugsAfterId",
"{controller}.mvc/{action}/{id}/{slug}",
new { controller = "Products", action = "Browse", id = "", slug = "" }
);
처음 두 경로가 문제없이 작동하지만을 나는 사용하여 세 번째 행 노선의 액션 링크를 만들려고 할 때 :
<%= Html.ActionLink(Html.Encode(product.Name), "Details", new { id = product.ProductId, slug = Html.Encode(product.Name) }) %>
내가// 1/URL- 세부 사항을 더 같은
[사이트 루트] 될 수있는 URL을 원하는 반면
나는 [사이트 루트]와 같은 URL/세부/1? 슬러그 = URL-슬러그와 끝까지 슬러그
Can anyon 내가 잘못 가고있는 곳을 보아라.
저는 항상 이런 종류의 문제가 있었으며 컨트롤러 및 액션 이름을 하드 코딩하는 것 외에는 용인 할 수있는 해결책을 찾지 못했습니다. 많은 경로를 유도합니다. – Will
당신은 ASP.NET MVC 프로젝트에 대한 편안한 라우팅을 볼 수 있습니다. http://stevehodgkiss.com/2009/10/11/restful-routes-for-asp-net-mvc.html 저는 이것을 사용하여 URL을 얻을 수 있습니다./blogs/1/posts/2/comments/3 – Paul