다중 경로 값을 사용하는 ASP.NET MVC URL 라우팅
저는 Html에 문제가 있습니다.둘 이상의 매개 변수가 필요한 경로가 있는 경우 ActionLink.예를 들어, myGlobal.asax 파일에 정의된 다음 경로를 지정합니다.
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) }) %>
URL은 [site-root]/Details/1?slug=url-slug과 같은 URL로 끝나는 반면 URL은 [site-root]/Details/1/url-slug과 같은 URL로 끝납니다.
누가 내가 어디서 잘못되고 있는지 알 수 있습니까?
그것은 완전히 만족하는 첫 번째 경로를 사용하고 있습니다.당신의 것을 넣어보세요.SlugsAfterId
위의 경로Default
하나.
기본적으로 "기본값을 확인합니다.조치가 있습니까?네, 신분증 있어요?예. 이것을 사용하고 쿼리 문자열에 있는 다른 매개 변수를 버립니다."
참고로, 그것을 하는 것은 당신을 만들 것입니다.Default
기본값을 제공하는 경로 중복slug
매개 변수
게리(위)가 맞습니다.당신은 MVC를 위해 Haack씨의 루트 디버거를 사용할 수 있습니다.어떤 경로가 검색되고 언제 검색되는지 보여줌으로써 라우팅 문제를 해결하는 데 도움이 될 수 있습니다.
여기 블로그 포스트가 있습니다.그리고 여기 Zip 파일이 있습니다.
"id"를 포함하는 제약 조건을 경로에 추가할 수 있습니다. "id"는 숫자만 허용하기 때문입니다.이렇게 하면 첫 번째 경로는 "id"가 숫자일 때만 일치하고 다른 모든 값에 대해 두 번째 경로가 됩니다.그런 다음 {slug}이(가) 포함된 것을 맨 위에 놓으면 모든 것이 올바르게 작동합니다.
routes.MapRoute(
"SlugsAfterId",
"{controller}.mvc/{action}/{id}/{slug}",
new { controller = "Products", action = "Browse", id = "", slug = "" },
new { id = @"\d+" }
);
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" }, // Parameter defaults
new { id = @"\d+" }
);
routes.MapRoute(
"Tagging",
"{controller}.mvc/{action}/{tags}",
new { controller = "Products", action = "Index", tags = "" }
);
언급URL : https://stackoverflow.com/questions/734249/asp-net-mvc-url-routing-with-multiple-route-values
'programing' 카테고리의 다른 글
PL/SQL의 열에 대해 반복 (0) | 2023.08.05 |
---|---|
HTML 목록 유형 대시 (0) | 2023.08.05 |
개발자 도구를 사용하여 웹킷 입력 자리 표시자 검사 (0) | 2023.08.05 |
자바스크립트의 ++someVariable 대 someVariable++ (0) | 2023.08.05 |
UIViewController의 뷰를 하위 뷰로 추가하는 방법 (0) | 2023.08.05 |