2009-11-10 1 views
1

저는 ASP.NET [MVC]의 절대 초보자입니다. 그래서 이것은 아마도 바보 같은 질문 일 것입니다.웹 사이트 '최상위'에서 파일을 제공하기위한 ASP.NET MVC 라우팅?

URL "http://localhost/clientaccesspolicy.xml"을 특정 컨트롤러 작업에 연결하려고합니다. 어떻게이 일을 할 수 있습니까?

이 URL에 대해 파일을 정적으로 게재하는 방법에 대해서도 궁금합니다.

(정적으로 프로젝트의 최상위 레벨에서 '콘텐츠'파일로 추가하여 파일을 제공 할 수있었습니다.)

+0

** 참고 : ** Google 크롬 사용자를. XML 파일은 게재되지만 버그로 인해 Chrome에 표시되지 않습니다. 나는 뭔가 잘못되었다고 생각하지만 Chrome은 파일을 표시하지 않았습니다. 아! – gideon

답변

3

이이해야 할, 그래서 다른 모든 노선들은 그대로 유지 ... 그리고 당신은 이것에 대한 컨트롤러 액션이 필요하지 않습니다 ..

routes.RouteExistingFiles = true; 

routes.IgnoreRoute("clientaccesspolicy.xml"); 
+0

'routes.RouteExistingFiles = true'는 CSS 요청을 가정 할 때 사물을 엉망이게합니다. 사진도 다시 라우팅됩니다. 그 외에는 무시 경로가 잘 작동합니다. – gideon

2

이 추가 수행 할 수 있습니다 : 다른 모든 경로 위의

routes.RouteExistingFiles = true; 

합니다. 그런 다음 추가 :

routes.MapRoute(null, "clientaccesspolicy.xml", new { controller = "Foo", action = "Whatever" }); 

정상적으로 작동하지만 경고 할 것입니다. 일반적으로 좋은 아이디어는 아닙니다. 이것은 MVC 라우팅 시스템에 디스크에서 일치하는 파일 제공을 중단하도록 지시합니다. 여기에는 이미지, CSS, 스크립트 등이 포함됩니다. 이것은 내가 상상할 수있는 것보다 훨씬 더 많은 작업을 할 것입니다.