2011-07-17 17 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'ルートでは、サムネイル画像を生成するコントローラを呼び出すことができます。ローカルでは動作しますが、Webサイトの公開時には動作しません。

「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" }); 

/ステファノ・ご返信用

関連する問題