Volevo solo far notare che se non fosse che il trucco funziona solo con sottolineatura data
attributi è, è che funziona solo con il passaggio attributi HTML in generale. Questo perché ha senso cambiare i caratteri di sottolineatura in trattini nel contesto dell'HTML, poiché i caratteri di sottolineatura non sono usati negli attributi HTML. Tuttavia, è perfettamente valido per te avere un parametro di percorso con un carattere di sottolineatura, quindi il framework non può fare supposizioni sul tuo intento.
Se è necessario passare i valori del percorso con trattini, è necessario utilizzare un RouteValueDictionary
. Questa è semplicemente una limitazione di oggetti anonimi che non possono essere superati.
<li>@Html.ActionLink("abc", "abc", "abc", new RouteValueDictionary { { "area", "" }, "sap-ie", "Edge" } }, new RouteValueDictionary { { "id", "nav_abc" } })</li>
Purtroppo, non c'è ActionLink
overload che accetta sia una RouteValueDictionary
per routeValues
e un oggetto anonimo per htmlAttributes
, per cui il passaggio uno significa commutazione entrambi. È possibile utilizzare tecnicamente qualsiasi implementazione IDictionary
per il parametro htmlAttributes
, quindi è preferibile utilizzare solo new Dictionary { { "id", "nav_abc" } }
. Tocca a voi.
fonte
2014-12-17 18:43:27
L'ho provato. ma genera "sap_ie", non "sap-ie" –
funziona solo con "data-" – InferOn
@ user3273146 ho modificato la mia risposta ... funzionerebbe? – scartag