2011-06-22 16 views
4

MapRouteメソッドの使い方を教えてもらえますか?自分のルートを作成しようとしましたが、機能しません。私が達成したいのは、 "http://servername/home/default.aspx"をコントローラの "Home"とアクション "Default"にルーティングするルートです。また、ユーザーがdefault.aspx "file"をブラウズしている場合、実際には "Index"アクションを指していると言えるでしょうか?MVC 3 MapRouteの使い方

私はMSDNの参照とグーグルを読むことを試みましたが、それは私を賢明にしませんでした。

+0

routes.MapRoute( name: "MyName", url: "{controller}/{action}/{myParam}", defaults: new { controller = "MyController", action = "MyAction", id = UrlParameter.Optional } ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 

MyController。 WebFormsをMVCに表示しようとしていますか、「http://servername/home/default.aspx」が入力されたときにcontroller = "Home"、action = "Index"にルーティングするルートを作成したいとしますか?ブラウザに入れますか? – bdparrish

答えて

4

あなたがあなたの質問の最初の部分を構成するルートは次のとおりです。

routes.MapRoute(
    "", 
    "home/default.aspx/{param}", 
    new { controller = "Home", action = "Default", param = UrlParameter.Optional } 
); 

routes.MapRoute(
    "", 
    "home/default.aspx", 
    new { controller = "Home", action = "Default" } 
); 

はあなたのような何かを行うことができ、パラメータのいくつかの並べ替えではdefault.aspxを「参照」したいと仮定すると、

これで、文字列paramを受け入れるデフォルトアクションを作成する必要があります。

+0

これは私がmaprouteメソッドを使うと思った方法ですが、サイト(home/default.aspx)をブラウズしようとするとエラー404が表示されます –

+0

まあ、新しいASP.NET MVC3ソリューションで実行してみてください。それは私がやったことで、うまくいきました。ルートが解決されないようにしなければならない何かがあるはずです。 –

+0

私にとってはうまく動作します –

7

おそらく、問題を提起したが他の誰かを助けるかもしれない開発者を手助けするには遅すぎます。 MVCの初心者ですが、地図ルートが追加された順番で処理されているようです。私は同様の問題を抱えていましたが、最後のルートとしてデフォルトルートを追加するまで、特定のルートは機能しませんでした。

デフォルトマップルートがカスタムマップルートの前に追加され、カスタムURLがデフォルトマップルートで定義された構造と一致する場合は、決してカスタムルートには到達しません。

0

また、パラメータ名がアクションのパラメータ名と同じであることも確認する必要があります。 例:あなたはより多くを説明する必要が

public ActionResult MyAction(string myParam = "") 
{ 

} 
関連する問題