ASP.NET 4 RTM
으로 프로젝트를 업그레이드했습니다. 오늘 ASP.NET MVC 2.0 RTM
으로 변경하십시오.ASP.NET 4 RTM의 선택적 경로 매개 변수가 이전처럼 작동하지 않습니다.
나는 이전에 ASP.NET 3.5
과 ASP.NET MVC 2.0 RTM
을 사용하고있었습니다.
일부 경로가 갑자기 작동하지 않아 그 이유를 알 수 없습니다. 3.5와 4.0 사이에 뭔가가 변경되었는지 확신 할 수 없거나 4.0 RTM의 회귀 유형 문제 일 경우 잘 모르겠습니다. (이전에 내 응용 프로그램을 4.0으로 테스트 한 적이 없었습니다.)
URL을 생성 할 때 모호성을 피하기 위해 Url.RouteUrl("route-name", routeParams)
을 사용하고 싶습니다. 갤러리 페이지의 경로 정의는 다음과 같습니다. imageID
을 선택하길 원합니다 (지정하지 않으면 미리보기 이미지 페이지가 나타납니다). .NET에서
// gallery id
routes.MapRoute(
"gallery-route",
"gallery/{galleryID}/{imageID}/{title}",
new { controller = "Gallery", action = "Index",
galleryID = (string) null,
imageID = (string) null,
title = (string) null}
);
3.5/ASP.NET 2.0 RTM/IIS7은
Url.RouteUrl("gallery-route", new { galleryID = "cats"})
=> /gallery/cats
Url.RouteUrl("gallery-route", new { galleryID = "cats", imageID = "4")
=> /gallery/cats/4
Url.RouteUrl("gallery-route", new { galleryID = "cats", imageID = "4", title = "tiddles")
=> /gallery/cats/4/tiddles
.NET 4.0 RTM/ASP.NET 2.0 RTM/IIS7에서 이전
Url.RouteUrl("gallery-route", new { galleryID = "cats"})
=> null
Url.RouteUrl("gallery-route", new { galleryID = "cats", imageID = "4")
=> /gallery/cats/4
Url.RouteUrl("gallery-route", new { galleryID = "cats", imageID = "4", title = "tiddles")
=> /gallery/cats/4/tiddles
내가 제공 할 수 있습니다 galleryID
과 그 외 모든 것은 생성 된 URL에서 무시됩니다. 그러나 이제는 모든 매개 변수를 title
까지 지정해야 할 필요가 있거나 URL을 결정하는 것을 포기합니다.
들어오는 URL은 /gallery/cats
을 위해 잘 작동하고 올바르게 imageID
및 title
모두 내 컨트롤러에 null
을 할당되는으로이 규칙을 통해 매핑됩니다.
또한 INCOMING 경로를 http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx으로 테스트했는데 모두 정상적으로 작동합니다.
내가 그것을 정말 감사하겠습니다. 난 단지 하나의 기계 : - ( –