5

MapRouteメソッドの使用方法を教えてもらえますか?独自のルートを作成しようとしましたが、機能しません。私が達成したいのは、「http://servername/home/default.aspx」をコントローラー「Home」とアクション「Default」にルーティングするルートです。また、ユーザーがdefault.aspxの「ファイル」を参照している場合、実際には「インデックス」アクションを指していると言えますか?

私はMSDNのリファレンスを読んでグーグルで調べてみましたが、賢くなりませんでした。

4

3 に答える 3

10

おそらく、質問を提起した開発者を助けるには遅すぎますが、他の誰かを助けるかもしれません。MVCは初めてですが、マップルートは追加された順序で処理されているようです。同様の問題が発生しました。最後のルートとしてデフォルトルートを追加し始めるまで、特定のルートが機能しませんでした。

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

于 2011-09-21T07:09:59.930 に答える
7

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

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

ある種のパラメータを使用してdefault.aspxを「参照」したい場合は、次のようにすることができます。

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

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

于 2011-06-22T12:41:52.737 に答える
2

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

    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:

public ActionResult MyAction(string myParam = "")
{

}
于 2014-06-11T16:30:26.160 に答える