gpt4 book ai didi

asp.net-mvc-3 - Html.ActionLink 魔法

转载 作者:行者123 更新时间:2023-12-02 02:10:46 25 4
gpt4 key购买 nike

我有以下模型:

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)
}

并为此操作强类型 View

@model AccountDetailsViewModel
...
@Html.ActionLink("My Page", "Details", "Account")
...
//display info about user

这个想法是,当用户在没有 id 参数的情况下访问帐户/详细信息 url 时,会显示他自己的信息,并且当 id 出现在 url 中时,会显示有关具有该 id 的用户的信息。

问题是当用户访问带有 id(某人的其他页面)的 url 时,我的页面链接(在 View 顶部)指向同一页面。 ActionLink 获取当前显示的用户的 ID,这是一个问题,因为我希望我的页面链接始终指向帐户/详细信息(指向我的页面)。 ActionLink 的这个 id 并不是像我最初想的那样取自 @Model,看起来还有一些我不熟悉的其他魔法。

其他页面也有同样的问题。

那么发生了什么以及如何防止这种行为?

最佳答案

如果您不指定它们是什么,ASP.NET MVC 会重新使用路由变量。因此,如果我在与路由匹配的其他人的页面上,即使您没有明确说明要使用它们,也会使用他们的 ID。

@Html.ActionLink("My Page", "Details", "Account", new { id = "" })

只需将其设置为空白即可清除 ID 参数。

关于asp.net-mvc-3 - Html.ActionLink 魔法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com