AdminAreaRegistration.cs
파일 대신 global.asax
파일에 지역 경로 (즉 Admin이라고 부름)를 등록하는 경우 AdminAreaRegistration.cs
파일을 삭제할 수없는 이유가 있습니까? 누락 된 경우 예외를 throw 할 수있는 일부 단계에서 호출 할 수있는 다른 코드가 프레임 워크에 있습니까?xxxxxxxAreaRegistration.cs를 삭제할 수 있습니까?
, 여기에 필립 Haydon에 의해 this excellent post 강조로, Global.asax에
routes.MapRoute(
"AdminAreaRoute",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Payntbrush.Presentation.Demo.MVC3.Areas.Admin.Controllers" }
).DataTokens.Add("Area", "Admin");
routes.MapRoute(
"SiteAreaRoute",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { controller = "/|Home|Account" }, // Constraint's on the URL (second param above) {controller} segment
new string[] { "Payntbrush.Presentation.Demo.MVC3.Areas.Site.Controllers" }
).DataTokens.Add("Area", "Site");
키가 DataTokens 컬렉션을 사용에에서 영역을 등록하는 코드입니다. 원하는 수만큼 추가 할 수 있지만 명시 적으로 명명 된 영역 뒤에 루트 사이트 영역을 두어 다른 맵 경로보다 먼저 {controller}/{action}/{id}
이 모든 요청을 포착 할 수 없도록해야합니다.
위 코드를 달성하기 위해 위 코드를 추가했습니다. 이것은 잘 작동하지만, 내가 알아 내려고하는 것은 MVC 3 프레임 워크 내에 xxxAreaRegistration 클래스를 호출 할 수있는 다른 코드가 있는지 여부이다. 삭제하면 null 예외가 발생합니다. – Chris
Chris, 여기서 문제는 경로를 등록하지 않고 해당 영역에 액세스하려고하면 오류가 발생한다는 것입니다. 따라서 등록한 한 해당 영역에 액세스 할 때 오류가 발생하지 않아야합니다. 이것은 닷넷이 arearegistration 또는 등록 된 경로를 필요로하거나 찾을 유일한 시간입니다. – shenku
지금은 확인할 수 없지만 지역에서 AreaRegistration 파일을 삭제하고 Global.asax의 "AdminAreaRoute"경로에 의존하여 요청이 올바르게 라우팅 된 후 90 %입니다. 다음 번 기회를 두 번 확인해 보겠습니다. – Chris