2011-07-17 259 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),只是爲了避免出現點字符問題。

Marco

0

我不認爲有另一種方法來避免.aspx而不是「正常」路由。 任何我不認爲這是一件大事。 我也認爲在你發佈的代碼中(我沒有嘗試過)路由不正確:添加aspx你應​​該把控制器名稱後面的aspx放在默認的調整器中。 類似的東西:

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

/斯特凡諾