MVC 3에서는 문제가 없었지만 지금은 MVC 4로갔습니다.id에 파일 확장자가있는 경우 ASP.NET MVC 4 라우팅이 작동하지 않습니다.
URL은 다음처럼 보였다 :
팟 캐스트 - 01.MP4는 ID입니다{controller}/{action}/{id}
/podcast/file/PODCAST-01.MP4
; 컨트롤러에 도달하면 컨트롤러가 파일을 클라이언트에 보내고 이렇게하면 파일을 얼마나 많은 사람들이 다운로드했는지 쉽게 알 수 있습니다.
그러나 이제 웹 서버는 파일이 있어야한다고 생각하고 404 오류를 표시합니다. 내 자신의 404 오류 페이지를 만든 다음 /podcast/file?id=PODCAST-01.MP4로 다시 리디렉션하여이 문제를 해결하려고 시도했지만 iTunes가 마음에 들지 않아 작동하지 않습니다. "?".
은 내가에게 새로운 경로를 만드는 시도 :routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}.{format}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, format = UrlParameter.Optional });
을하지만 그건 그냥 경로를 깨진 것 같습니다. 어떤 도움이라도 좋을 것입니다.
에 대한 그 전에 새 처리기를 추가 할 필요가 어떻게됩니까? 그것은 한 눈에 똑바로 보인다. – Billdr
"HTTP Error 403.14 - Forbidden 웹 서버가이 디렉토리의 내용을 나열하지 않도록 구성되었습니다."페이지로 이동하면이 오류가 발생합니다. RouteConfig.cs를 변경할 때 –
파일 이름에 무엇이 있어야하는지 (가지고 있지 않은지)를 명시 적으로 정의하는'constraints' 섹션을 추가하는 것은 어떻습니까? (또한 역사적으로 [연속적인 선택적 매개 변수]에 문제가있었습니다 (http://haacked.com/archive/2011/02/20/routing-regression-with-two-consecutive-optional-url-parameters.aspx)) –