0

我被一个似乎很奇怪的问题难住了。

在我的 Razor 标记中,我有:

@Html.ActionLink("World", "Browse", "Destination")

但生成的 HTML 是:

<a href="/Destination/Browse/1/africa-middle-east">World</a>

请注意,附加数据实际上是我在其他链接中使用的有效数据。但它为什么会出现在这里?我什至可以通过在调试器中检查它来验证第一行是否生成了第二行。

我知道我在这里做了一些非常愚蠢的事情。我只是不明白它是什么。

4

1 回答 1

1

我想,它正在使用旧的路由值来构建 a 标签。检查这篇文章是否有类似的情况。

使用这个重载并尝试将 null 作为 RouteValues 显式传递,看看它带来了什么变化

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    RouteValueDictionary routeValues
)

所以你的代码可以重写为

@Html.ActionLink("World", "Browse", "Destination",null)

或者,您也可以尝试使用此版本

<a href="Url.Action("Browser", "Destination")">World</a>
于 2012-09-18T20:36:15.673 回答