2011-07-17 6 views
0

ASP.NET MVC 2 응용 프로그램을 게시하는 동안 찾은 라우팅 관련 문제에 대한 피드백이 필요합니다. Global.asax 파일에서 나는 다음과 같은 경로 정의 : 그래서ASP.Net MVC 2 라우팅

// Thumbnails routing. 
// Sample URL: resizer/resizeImage/200/200/Error/error.jpg 
routes.MapRoute("Resizer","Resizer/{action}/{width}/{height}/{folder}/{file}", 
new { controller = "Resizer", action = "ResizeImage", width = 100,height = 100, 
folder = "Error", file = "error.jpg" 
} 
); 
// Default routing. 
// Sample URL: /Home/Index 
routes.MapRoute("Default", "{controller}/{action}.aspx/{id}", 
new { controller = "Home", action = "Index", id = (string)null } 
); 

을, 첫째로 나는 그렇게 처음 ... 그렇지 않으면 호스팅 서버 (아루바) 라우팅을 제대로 수행하지 않는 기본 라우팅에서 .aspx 추가했다 질문 : 일반적인 라우팅 (예 : .aspx를 추가하지 않고)을 유지하는 다른 해결 방법이 있습니까?

'Resizer'경로를 사용하면 미리보기 이미지를 생성해야하는 컨트롤러를 호출 할 수 있어야합니다. 웹 사이트가 게시 될 때 로컬로는 작동하지만 그렇지 않은 경우 작동합니다.

'resizer/resizeImage/200/200/Error/error.jpg'와 같은 경로가 인식되지 않습니다.

어떻게이 문제를 해결할 수 있습니까?

답변

0

감사합니다.

Resizer 경로에서도 '.aspx'를 {action}에 추가하여 경로를 수정했습니다. 그것은 제대로 작동하는 것 같다

routes.MapRoute("Resizer", 
"Resizer/{action}.aspx/{width}/{height}/{folder}/{file}", 
new { controller = "Resizer", action = "ResizeImage", 
width = 100, height = 100, folder = "Error", file = "error" }); 

,이 IIS 라우팅을 활성화 할 수있는 유일한 방법은 실제로 : 는 이제 것 같습니다.

도트 문자에 문제가 발생하지 않도록 파일 확장명 (.jpg)도 삭제했습니다.

마르코

0

"정상적인"라우팅 대신 .aspx를 피할 수있는 다른 방법이 있다고 생각하지 않습니다. 나는 그것이 큰 문제라고 생각하지 않는다. 나는 당신이 게시 한 코드에서 (나는 그것을 시도하지 않았다) 라우팅이 올바르지 않다는 것을 생각한다 : aspx를 추가하려면 컨트롤러 이름 다음에 aspx를 넣어야한다. 기본값은 resizer이다. 그런 뭔가 :

routes.MapRoute("Resizer", 
     "Resizer.aspx/{action}/{width}/{height}/{folder}/{file}", 
     new { controller = "Resizer", action = "ResizeImage", 
     width = 100, height = 100, folder = "Error", file = "error.jpg" }); 

/스테파노 답장을 보내