【问题标题】:Html.ActionLink with ViewBag带有 ViewBag 的 Html.ActionLink
【发布时间】:2015-08-19 20:00:54
【问题描述】:

我目前在 Razor 中有一个如下所示的 ActionLink:

@Html.ActionLink("Back to News", "Index")

但是,我希望给它添加一个 ViewBag

@ViewBag.groupid

因此ActionLink的渲染要知道而不是简单:

<a href="/">Back to News</a>

改为将 URL 更改为 Index/@ViewBag.groupid (Index/5)

所以那个 URL 就是

/Index/5   ( where 5 is the ViewBag.groupid)   

【问题讨论】:

  • 有一个过载(实际上是一些)占用routeValues。将routeValues 设置为一个新的匿名对象,并将id 属性设置为ViewBag.groupid

标签: asp.net-mvc razor viewbag html.actionlink


【解决方案1】:

有一个使用 routeValues 的重载(实际上是一些)。将 routeValues 设置为 id 属性设置为 ViewBag.groupid 的新匿名对象。

@Html.ActionLink("Back to News", "Index", "controller name", 
                 new {id = ViewBag.groupid}, null)

【讨论】:

  • 那行得通,只是不需要结束分号;谢谢。
【解决方案2】:

使用这种格式:

@Html.ActionLink("title", actionMethodName","ControllerName", new { id = value }, null);

你的例子是:

@Html.ActionLink("back to news", "Index", "your controller name", new { id = @ViewBag.groupid }, null);

【讨论】:

  • 关闭,ViewBag前面没有@,也没有结尾;不过谢谢
  • 我在断开连接时正在写响应,因此我的答案被重复了。对此感到抱歉
  • 您是正确的,ViewBag 前面的 @ 仍然允许它工作。但是它没有以黄色突出显示,因为它不是必需的,我很惊讶它仍然可以使用和不使用。
猜你喜欢
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多