Chciałem tylko zwrócić uwagę, że nie, że sztuczka działa tylko z podkreślenia data
atrybutów jest, to, że działa tylko z przechodzącej atrybutów HTML w ogóle. Dzieje się tak, ponieważ zmiana podkreśleń na myślniki w kontekście HTML ma sens, ponieważ podkreślenia nie są używane w atrybutach HTML. Jednak jest całkowicie uzasadnione, że masz parametr trasy z podkreśleniem, więc framework nie może zakładać żadnych założeń dotyczących twojego zamiaru.
Jeśli musisz przekazywać wartości tras za pomocą łączników, musisz użyć wartości RouteValueDictionary
. Jest to po prostu ograniczenie anonimowych obiektów, których nie można pokonać.
<li>@Html.ActionLink("abc", "abc", "abc", new RouteValueDictionary { { "area", "" }, "sap-ie", "Edge" } }, new RouteValueDictionary { { "id", "nav_abc" } })</li>
Niestety, nie ma ActionLink
przeciążenie, która akceptuje zarówno RouteValueDictionary
dla routeValues
i anonimowy obiekt dla htmlAttributes
, więc przełączania jeden oznacza przełączania obu. Możesz technicznie użyć dowolnej implementacji IDictionary
dla parametru htmlAttributes
, więc możesz użyć tylko new Dictionary { { "id", "nav_abc" } }
. To zależy od Ciebie.
Próbowałem tego. ale generuje "sap_ie", a nie "sap-ie" –
to działa tylko z "danymi-" – InferOn
@ user3273146 Zmodyfikowałem moją odpowiedź ... czy to działałoby? – scartag