5

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 です。

何か案は?

4

2 に答える 2

5

追加してみてください:

routes.MapRoute(
                    "Default",                                                                                              // Route name
                    "{controller}/{action}/{param}",                                                   // URL with parameters
                    new { controller = "Home", action = "Index", param = "" }  // Parameter defaults
            );
于 2009-03-03T19:40:02.657 に答える
4

パラメータ名がidの代わりにparam. そこに他のパラメーターを提供したい場合は、別のルートを作成する必要があります。

于 2009-03-03T19:41:16.240 に答える