0

ASP.Net MVC에 익숙하지 않고 ASP.Net MVC 5를 배우려고합니다. 내가 처음부터 샘플 프로젝트를 만들어서 배우려고합니다. routes.MapRoute 메서드를 호출하여 RouteConfig.cs에 기본 컨트롤러 및 기본 동작을 지정할 수 있다는 것을 알고 있습니다. 하지만 기본 컨트롤러를 설정할 수 있다면 궁금합니다 & RouteConfig.cs을 사용하지 않고 Route 속성을 사용하는 작업.ASP.Net MVC 5의 Route 속성을 사용하여 기본 컨트롤러 및 동작 설정

편집 : 나는 다른 라인을 RouteConfig.csRegisterRoutes 방법 다음 코드 줄을 추가하고 제거하여이 작업을 수행 할 수 있음을 발견했다. 이 후

routes.MapMvcAttributeRoutes(); 

, 우리는 기본을 설정하려는 컨트롤러 액션에 바로 작업 위의 [Route("~/")] 속성을 추가 할 수 있습니다. 이렇게해야합니다.

그러나 양식 인증의 경우 로그인보기가 표시됩니다. 기존 라우팅이없는 경우 기본 컨트롤러에 대한 속성 기반 라우팅 (집에 있음)이 로그인으로 리디렉션하지 않기 때문에 로그인보기로의 리디렉션이 실패합니다. [Route("~/")] 속성을 로그인 액션에 추가하면 "여러 컨트롤러 유형이 URL과 일치하는 것으로 확인되었습니다. 여러 컨트롤러의 속성 경로가 요청 된 URL과 일치하는 경우 발생할 수 있습니다."라는 오류가 발생합니다.

답변

0

전통적인 라우팅과 속성 경로는 함께 작동 할 수 있습니다. RouteConfig.cs의 다른 줄을 지우지 말고 routes.MapMvcAttributeRoutes();을 다른 줄 위에 놓지 마십시오. 라우팅 시스템은 먼저 일치하는 라우팅 경로를 찾을 수없는 경우 요청 된 URL에 대한 속성 경로와 일치하는 항목을 찾으려고 시도합니다. 요청한 URL과 일치하는 것을 찾으십시오.