2010-11-20 18 views
9

que tienen la necesidad de poner un atributo personalizado en un ancla, que estoy construyendo usando Html.ActionLink()ASP.NET MVC/C#: ¿Puedo crear atributos de HTML personalizados y válidos usando Html.ActionLink()?

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

Usando el correcto "Data-" prefijo, como por http://www.w3.org/TR/html5/elements.html#attr-data, me sale el error de seguir Estudio visual.

Declarador de miembro de tipo anónimo inválido. Los miembros de tipo anónimo deben declararse con una asignación de miembro, nombre simple o acceso de miembro.

Como no puedo usar un guion en el tipo anónimo, ¿cuál sería la mejor manera de agregar mi atributo de HTML personalizado?

Respuesta

17

data-icon no es un nombre válido de variable C#. Lo más cerca que se puede conseguir es la siguiente:

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

Por supuesto, esta cuestión se ha abordado en ASP.NET MVC 3 y ya no es necesario escribir código espagueti. Por lo tanto:

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

Y el subrayan serán convertidos automáticamente a un guión.

+0

Genial, parece que es hora de actualizarse. –

Cuestiones relacionadas