我有以下模型:
public class AccountDetailsViewModel
{
public Guid ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
然后我有AccountController 和followign 动作
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 参数的 Account/Details url 时,会显示他自己的信息,并且当 id 出现在 url 中时,会显示有关具有该 id 的用户的信息。
问题是当用户使用 id 访问 url(某人的其他页面)时,链接 My Page(在视图顶部)指向同一页面。ActionLink 获取当前显示用户的 id,这是一个问题,因为我希望我的页面链接始终指向帐户/详细信息(指向我的页面)。ActionLink 的这个 id 不是像我首先想到的那样取自 @Model,看起来还有其他一些我不熟悉的魔法。
我对其他页面也有同样的问题。
那么发生了什么以及如何防止这种行为呢?