将类添加到操作链接



我有带有登录按钮的操作链接

@Html.ActionLink("Login", "Login", "Account")

它可以完美地将用户重定向到控制器AccountLogin操作。 但是当我尝试添加类来设置此按钮的样式时:

@Html.ActionLink("Login", "Login", "Account", new { @class = "btn btn-primary btn-lg" }) 

它确实获得了样式并且看起来不错,但它丢失了控制器信息并将用户重定向到Home/Login,而不是Account/Login

您需要在样式之前添加一个 null 参数,因为它引用routeValues

@Html.ActionLink("Login", "Login", "Account", null, new { @class = "btn btn-primary btn-lg" }) 

看看它的文档 这里.

ActionLink帮助程序中的第四个参数引用routeValues而不是htmlAttributes,这解释了为什么您被重定向到另一个Login操作。

您需要将ActionLink与 5 个重载一起使用,如下所示:

@Html.ActionLink("Login", "Login", "Account", null, new { @class = "btn btn-primary btn-lg" })

ControllerName后有object routeValues参数,没有像ActionLink(link text, action name, controller name, htmlAttributes)这样的重载,所以试试这个:

@Html.ActionLink("Login", "Login", "Account", null, new { @class = "btn btn-primary btn-lg" }) 

而不是使用这个:

@Html.ActionLink("Login", "Login", "Account", new { @class = "btn btn-primary btn-lg" }) 

用:

@Html.ActionLink("Login", "Login", "Account", null,new { @class = "btn btn-primary btn-lg" }) 

在 5 重载方法中,您将htmlAttributes设置为routeValues。 这就是为什么它的行为不像你一样。

最新更新