首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html.ActionLink魔术

Html.ActionLink魔术
EN

Stack Overflow用户
提问于 2012-10-19 04:24:56
回答 1查看 199关注 0票数 3

我有以下模型:

代码语言:javascript
复制
public class AccountDetailsViewModel
{
   public Guid ID { get; set; }
   public string FirstName { get; set; }
   public string LastName { get; set; }
}

然后我有了带有跟随操作的AccountController

代码语言:javascript
复制
public ActionResult Details(Guid? id)
{
    var model = new AccountDetailsViewModel
    {
        ID = 2,
        FirstName = "FirstName",
        LastName = "LastName"
    };
    return View(model)
}

并为此操作强类型视图

代码语言:javascript
复制
@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,它看起来像是有其他一些我不熟悉的魔法。

我在其他页面上也遇到了同样的问题。

那么到底是怎么回事,如何防止这种行为呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 04:29:57

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

代码语言:javascript
复制
@Html.ActionLink("My Page", "Details", "Account", new { id = "" })

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12963139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档