私は次のモデルを持っています:
public class AccountDetailsViewModel
{
public Guid ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
次に、次のアクションを持つ AccountController があります
public ActionResult Details(Guid? id)
{
var model = new AccountDetailsViewModel
{
ID = 2,
FirstName = "FirstName",
LastName = "LastName"
};
return View(model)
}
そして、このアクションのビューを強くタイプします
@model AccountDetailsViewModel
...
@Html.ActionLink("My Page", "Details", "Account")
...
//display info about user
アイデアは、ユーザーがidパラメーターなしでアカウント/詳細URLにアクセスすると、彼自身の情報が表示され、idがURLに存在する場合、そのidを持つユーザーに関する情報が表示されるということです。
問題は、ユーザーが id (誰かの別のページ) で URL にアクセスすると、マイ ページ (ビューの上部) のリンクが同じページを指していることです。ActionLink は現在表示されているユーザーの ID を取得しますが、これは問題です。マイ ページ リンクが常にアカウント/詳細 (マイ ページ) を指すようにするためです。この ActionLink の ID は、最初に考えたように @Model から取得されたものではありません。私がよく知らない他の魔法があるようです。
他のページと同じ問題があります。
では、何が起こっていて、この種の行動を防ぐにはどうすればよいでしょうか?