ASP.NET MVC プロジェクトをセットアップしましたが、すべて問題なく動作していますが、ルーティングに問題が 1 つあります。私の Global.asax は次のようになります。
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
だから、異常なことは何もありません。私の問題は、次のように HTML.ActionLink を使用してコントローラー/アクション/パラメーターにリンクする場合です。
<%= Html.ActionLink("My link", "SomeAction", "SomeController", new {param="someParam"})%>
次のようなリンクを生成する必要があります(少なくとも私の頭では理にかなっています)http://www.localhost/SomeController/SomeAction/someParam
。
ただし、代わりに次のようなリンクが生成されます。http://localhost/SomeController/SomeAction?param=someParam
期待される結果 (SomeController/SomeAction/someParam) にリンクするリンクを手動で作成すると、正しいコントローラーとアクションが呼び出されますが、アクション メソッドで定義されたパラメーターは常に null です。
何か案は?