1. ホーム
  2. asp.net-mvc

[解決済み】Html.ActionLinkを使用して別のコントローラのアクションを呼び出す

2022-04-20 23:50:22

質問

を使用してコントローラ間を移動しようとしています。 ActionLink . 私の問題を例で説明します。

私はHatコントローラのIndexビューにおり、以下のコードを使ってProductコントローラのDetailsアクションへのリンクを作成しようとしています。

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }) %>

Product コントローラに Details へのリンクを作成する代わりに、Hat コントローラの下に Details へのリンクを作成し、その末尾に Length パラメータを追加します。

Hat/Details/9?Length=7

を使用することができません。 HTML.ActionLink を使用すると、この問題のために、コントローラを切り替えることができます。何が間違っているのか、ご指摘いただければ幸いです。ありがとうございます。

PS: MVCに付属するデフォルトのルート設定を使っています。

routes.MapRoute("Default", "{controller}/{action}/{id}", 
                     new { controller = "Home", action = "Index", id = "" } );

解決方法は?

あなたが欲しいのは、このオーバーロードです。

//linkText, actionName, controllerName, routeValues, htmlAttributes
<%=Html.ActionLink("Details", "Details", 
    "Product", new {id = item.ID}, null) %>