2010-12-07 8 views
1

컨트롤러와 이름이 같은 실제 폴더가 있습니다. 따라서이 링크는 다음에서 생성됩니다.라우팅 문제

<li><%= Html.ActionLinkForAreas<BlaController>(c => c.Index(1), "BlaDiBla")%></li> 

(폴더 이름 = 제어기 이름)

작동이 중지

www.bla.com/foldername.

가능한 한 쉽게이 동작을 피할 수 있을지 궁금합니다 (같은 이름의 폴더가 필요합니다).

감사합니다.

행복을 빌며,

기독교

+0

내가 지금까지 찾은 최고의 해결책은 다음과 같습니다. routes.RouteExistingFiles = true; 너무 굵은 입자 일 수 있습니다. 어떻게 생각해? – cs0815

답변

2

IIS는 하지 GET 우선 순위를 수행하지만 System.Web.Routing에서 ASP.net 라우팅 엔진은 경로보기 전에 실제 파일 (또는 디렉토리)를 찾습니다 당신이 정의했습니다.

RouteCollection.RouteExistingFiles 속성으로 전역 수준에서 전환 할 수 있습니다. 그러면 경로 정의가 파일 시스템보다 우선합니다. 이 경로를 변경하면 모든 경로를 테스트하십시오!

이 질문도 참조하십시오. Considerations when turning on RouteExistingFiles.

+0

감사합니다. 이것은 작동하는 것 같습니다 : routes.RouteExistingFiles = true; routes.IgnoreRoute ("Content/{* wildcard}"); – cs0815

+0

routes.IgnoreRoute ("Scripts/{* wildcard}");를 잊지 마세요. 그렇지 않으면 JS가 작동하지 않습니다! – cs0815