我有以下模型:
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出现在关于具有该id的用户的url信息中时,显示他自己的信息。
问题是,当用户使用id (某人的其他页面)访问url时,链接My page (位于视图顶部)指向相同的页面。ActionLink获取当前显示的用户的id,这是一个问题,因为我希望我的页面链接始终指向帐户/详细信息(指向我的页面)。这个ActionLink的id不是像我最初想的那样取自@Model,它看起来像是有其他一些我不熟悉的魔法。
我在其他页面上也遇到了同样的问题。
那么到底是怎么回事,如何防止这种行为呢?
发布于 2012-10-19 04:29:57
如果您没有指定路由变量是什么,ASP.NET MVC就会重用它们。因此,如果我在某人的页面上,匹配路由,他们的ID将被使用,即使你没有明确说要使用它。
@Html.ActionLink("My Page", "Details", "Account", new { id = "" })只需将其设置为空白即可清除ID参数。
https://stackoverflow.com/questions/12963139
复制相似问题