2010-11-20 12 views
9

Ho la necessità di mettere un attributo personalizzato in un ancoraggio che sto costruendo con Html.ActionLink()ASP.NET MVC/C#: Posso creare attributi HTML personalizzati validi utilizzando Html.ActionLink()?

<%: Html.ActionLink("Delete", "Delete", new { id = Model.ID }, new { data-icon = "ui-icon-trash" })%> 

Utilizzando il corretto "Data-" prefisso, come da http://www.w3.org/TR/html5/elements.html#attr-data, ottengo l'errore di seguire Visual Studio.

Dichiaratore membro di tipo anonimo non valido. I membri di tipo anonimo devono essere dichiarati con un'assegnazione membro, un nome semplice o un accesso membro.

Poiché non è possibile utilizzare un trattino nel tipo anonimo, quale sarebbe il modo migliore per aggiungere l'attributo HTML personalizzato?

risposta

17

data-icon non è un nome di variabile C# valido. Il più vicino si potrebbe ottenere è questo:

<%: Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = Model.ID }, 
    new Dictionary<string, string> { { "data-icon", "ui-icon-trash" } } 
) %> 

Naturalmente questo problema è stato affrontato in ASP.NET MVC 3 e non hai più bisogno di scrivere codice spaghetti. Quindi:

<%: Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = Model.ID }, 
    new { data_icon, "ui-icon-trash" } 
) %> 

E il sottolineano sarà automaticamente convertito a un trattino.

+0

Cool, sembra che sia ora di aggiornare! –

Problemi correlati