与routevalue的MVC Razor Actionlink问题

时间:2016-02-06 19:57:49

标签: c# asp.net asp.net-mvc razor

我正在尝试使用以下代码的actionlink:

@Html.ActionLink("Home", "List", "Product",
    new {
        @class = horizontal ? "btn btn-default btn-sm" :
            "btn btn-block btn-default btn-lg"
    })

然而,除非我在html属性之前为routevalues添加null,否则这会给我一个错误。我无法弄清楚为什么会这样。这可能是一个mvc版本问题,或者我在某个地方引用了错误的dll?

请协助。我正在关注Adam Freeman(Apress)的Sportsstore示例应用程序,他的代码没有路由值的null并且显然有效。

1 个答案:

答案 0 :(得分:0)

ActionLink有一些重载。你需要的是this one

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    object routeValues,
    object htmlAttributes
)

您正在尝试传递htmlAttributes的匿名object。要匹配签名,您的routeValues需要包含一个值(在这种情况下为null)。没有三个字符串和一个对象作为参数的重载,因此您会收到错误。