只是想指出,下划线技巧并不是只适用于data
属性,而是它通常只适用于传递 HTML 属性。这是因为在 HTML 上下文中将下划线更改为连字符是有意义的,因为在 HTML 属性中不使用下划线。但是,拥有带下划线的路由参数是完全有效的,因此框架不会对您的意图做出任何假设。
如果您需要使用连字符传递路由值,则必须使用RouteValueDictionary
. 这只是无法克服的匿名对象的限制。
<li>@Html.ActionLink("abc", "abc", "abc", new RouteValueDictionary { { "area", "" }, "sap-ie", "Edge" } }, new RouteValueDictionary { { "id", "nav_abc" } })</li>
不幸的是,没有ActionLink
接受RouteValueDictionary
forrouteValues
和匿名对象 for的重载htmlAttributes
,因此切换一个意味着切换两者。从技术上讲,您可以对参数使用任何IDictionary
实现htmlAttributes
,因此您可能更喜欢仅使用new Dictionary { { "id", "nav_abc" } }
. 由你决定。