5

난 그냥 신선한 ASP.NET MVC 4 솔루션을 만든 3 개 지역을 추가하고이 표시된 라우팅 싶습니다없이 1 개 지역 :ASP.NET MVC 4 - 세그먼트와 2 개 지역,

1. General   -> http://www.mysite.com/ 
2. Members   -> http://www.mysite.com/members/ 
3. Administration -> http://www.mysite.com/administration/ 

"일반"영역이 첫 번째 세그먼트 일 때 작동하지만 "일반"을 세그먼트로 표시하지 않으려면 3 개의 영역 모두에서 라우팅이 작동하지 않는 것처럼 라우팅을 구성 할 수 있습니다. URL. 보시다시피 나는 깨끗한 URL 구조를 목표로합니다.

각 영역 아래에 다수의 컨트롤러/뷰를 추가 할 계획이며이 영역 구성을 유지하려고합니다.

나는 similar MVC 2 problem posted을 보았지만 지역 등록 명령으로 내 특정 문제가 해결 될지 확신하지 못했습니다.

+0

"일반"이 정말로 영역 일 필요가 있습니까? 그것은 귀하의 사이트 (일부 지역이 아님)의 일괄 항목이어야하고 "회원"과 "관리"가 두 영역이어야합니다. –

+0

안녕 이단. 그 옵션이 있지만 이상적으로 "일반"영역이 시간이 지남에 따라 상당히 커지기 때문에 모든 컨트롤러/뷰를 영역 내에 유지하고 싶습니다. 'context.MapRoute ( 이름 : "Dashboard_Site" URL : "대시 보드/{컨트롤러}/{동작}/{ID}", 기본값 : 새로운 { – Bern

+0

또는 namespaces.Try에 지역이 같은 추가 영역 = "대시 보드" 컨트롤러 = "홈", 행동 = "인덱스", ID = UrlParameter.Optional }, 네임 스페이스 : 새로운 { "WebSite.Areas.Dashboard.Controllers"});' – Elyor

답변

3

GeneralAreaRegistration.cs 파일을 엽니 다.

context.MapRoute(
    "General_default", 
    "General/{controller}/{action}/{id}", 
    new { action = "Index", id = UrlParameter.Optional } 
); 

...이 교체 :

이 찾기 의견에

context.MapRoute(null, 
    "{controller}/{action}/{id}", 
    new { controller = "General", action = "Index", id = UrlParameter.Optional } 
); 

회신 :

당신이 URL http://www.mysite.com/members를 사용하는 가정이 가정 MembersAreaRegistration.cs 파일에 있습니다 :

context.MapRoute(
    "Members_default", 
    "Members/{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

... 그러면 작동합니다. 그러나 MapRoute 기본값에 controller = "Home" 조각이 없으면 URL은 http://www.mysite.com/members/home이어야합니다.

+0

그 확실히 URL 문제 (고마움)를 해결했지만 "회원"영역의 매우 간단한 HomeController는 이제 404를 반환합니다. 디폴트의'.MapRoute()'호출에 약간의 조정이 필요합니까? – Bern

+0

안녕하세요. 그게 바로 내 코드에있는 그대로이므로 404가 나타나기 때문에 변화가 없습니다. Global.asax의 일반 영역 앞에 회원 영역을 수동으로 등록해야합니까? – Bern

+0

@Bern 아니, 나는 그렇게 생각하지 않는다. 모든 영역은 global.asax의'AreaRegistration.RegisterAllAreas()'행에 의해 등록되어야합니다. 지역 네임 스페이스를 변경하지 않았습니까? 일반 영역의 원래 MapRoute로 돌아 가면 404 문제가 사라지나요? – danludwig