【问题标题】:ASP.NET adding id to razor ActionLink [duplicate]ASP.NET 将 id 添加到剃须刀 ActionLink [重复]
【发布时间】:2015-12-01 20:06:38
【问题描述】:

我需要 razor 来生成 href 链接。此代码工作正常:

@Html.ActionLink("Questions", "Questions", "SectionPartials")

如何将 id 元素设置为 a href 标记?我已经试过了:

@Html.ActionLink("Questions", "Questions", "SectionPartials", new { id= "new-link" })

这会在 a href 中添加一个 id,但导航将不再起作用。这也会在代码中产生错误(但会编译)

服务器错误:

代码错误

找不到有关此问题的更多信息。如果缺少某些信息(如控制器/视图(?)),我很乐意添加这些信息!

谢谢

【问题讨论】:

  • 您需要在 new { id = "new-link" } 参数之前添加一个空参数,如您在 Intellisense 中所见。
  • 当你说你找不到任何解决这个问题的方法时,这很奇怪。thisthis 还有更多。这一切都是我通过 Google 搜索得到的……
  • @Vini 我为不好的搜索道歉,我想是因为我是 ASP.NET 的新手,所以我不知道如何搜索更多
  • 技术新手与搜索无关。不管怎样,你得到了答案。所以没有问题

标签: asp.net-mvc


【解决方案1】:

所需的LinkExtensions.ActionLink 方法签名是:

public static MvcHtmlString ActionLink( 这个 HtmlHelper htmlHelper, 字符串链接文本、字符串 actionName、对象 routeValues、对象 html属性)

因此,您当前的 new { id= "new-link" } 作为 routeValues 参数传递。您需要将其作为 htmlAttributes 传递:

@Html.ActionLink("Questions", "Questions", "SectionPartials", null, new { id= "new-link" });

或者(使用命名参数):

@Html.ActionLink("Questions", "Questions", "SectionPartials", htmlAttributes: new { id= "new-link" });

MSDN

【讨论】:

  • 嘿感谢您的回复,答案已经给出,但额外的解释真的很实用! (不能批准 8 分钟,我会在几分钟内批准这个)!
【解决方案2】:

试试这个,因为如果你没有一些额外的参数,你需要忽略routeValues

@Html.ActionLink("Questions", "Questions", "SectionPartials", null, new { id= "new-link" })

或:

@Html.ActionLink("Questions", "Questions", "SectionPartials",  htmlAttributes : new { id= "new-link" })

【讨论】:

  • 感谢您的回复,这就是答案,我想问一下 null 代表什么,但这个问题已经回答了!非常感谢您的快速响应
  • @JimVercoelen 不客气
猜你喜欢
  • 2013-09-12
  • 2013-02-22
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多