1

私は次のルートを持っています:

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

これは正常に機能し、ユーザーが /home と入力するホーム コントローラーの Index アクションに誘導します。

ユーザーが入力した場合、常に Index アクションに直接アクセスできるようにする方法はありますか?

/home/xxx または /home/xxx/xxx

xxx には何を指定できますか?

4

3 に答える 3

3

もちろん、{action}ルート定義からその部分を削除して、アクションが常にIndex次のようになるようにします。

routes.MapRoute(
    name: "Default",
    url: "home/{anything}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
于 2013-06-14T08:09:19.480 に答える
1

URL から {action} を削除してデフォルト値のままにしておくと、問題なく動作するはずです。

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

このシナリオでは、アクションは常にインデックスになります...

于 2013-06-14T08:10:28.810 に答える
0

これを試して、考えられるすべてのルートをキャッチしてください。

routes.MapRoute(
    "Default",
    "home/{*url}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } }
);
于 2013-06-14T08:12:46.210 に答える