別のコントローラのビューから、この @Html.ActionLink を使用してクライアント コントローラの「ClnVwDet」アクションに再ルーティングしようとしています。
@Html.ActionLink("Client View", "ClnVwDet", "Client")
ClientController.cs
public ActionResult ClnVwDet()
{
int id = (int)TempData["id"];
bool vw = true; int pn = 0;
return RedirectToAction("Details", new { id, pn, vw });
}
どの actionName を使用しても、指定したものではなく、常にクライアントの「インデックス」アクションに移動します。
この修正された ActionLink の構文は機能します。
@Html.ActionLink("Client View", "ClnVwDet", "Client", new { id = @Model.Id }, null)
ここで答えが見つかりました: Using Html.ActionLink to call action on different controller . カグダスの回答に関するバンフォードのコメントを参照してください。正しいオーバーロードを取得するには、5 番目の引数を追加する必要があります。(linkText, actionName, controllerName) オーバーロードで routeValues を渡したい場合は、適切なオーバーロードを取得するために htmlAttribues を追加する必要があります。(linkText、actionName、controllerName、routeValues、htmlAttribues)