2

別のコントローラのビューから、この @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)

4

0 に答える 0