1

コントローラには2つの方法があります

関数FollowUp(id As String)As ActionResultおよび関数Details(id As String)As ActionResult

<%:Html.ActionLink( "FollowUp"、 "FollowUp")%>と書くと、生成されたリンクにIDが含まれません(/ Project / FollowUpを取得します)

しかし、<%:Html.ActionLink( "Details"、 "Details")%>と書くと、生成されたリンクにはIDが含まれます(/ Project / Details / 25を取得します)

なぜこれが起こるのか誰かが説明できますか?

4

1 に答える 1

2

パラメータを使用するルーティングのリンクを作成する場合、現在のルートデータにその変数が含まれていると、同じ値がURLに含まれます。例:標準ルーティングのみの場合:

routes.MapRoute(
     null,
     "{controller}/{action}/{id}", // URL with parameters
     new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

そして、現在/ home / index / 25にあり、新しいリンクを作成する@Html.ActionLink("test","testing")と、現在のID:/ home / tests/25が含まれます。このデフォルトIDが表示されないと考える方法は2つあります。

1){id}パラメータを含まない「FollowUp」の別のルーティングがあります。

routes.MapRoute(
     null,
     "Project/FollowUp",
     new { controller = "Project", action = "FollowUp" }
);

2)現在ルーティングに含まれているIDがないページに「フォローアップ」リンクを作成しています。(home / index/25ではなくhome/indexのように)

于 2012-05-19T01:32:39.070 に答える