Pregunta

Estoy utilizando ASP.NET MVC junto con jquery mobile en una aplicación web. Quiero generar un enlace:

<a href="/Whatever/Previous" data-role="button" data-icon="arrow-l">Previous</a>

Tengo un método de extensión de ayuda que me permite hacer:

<%= Html.ActionLink<WhateverController>(c => c.Previous(), 
         "Previous", 
         new { data-role = "button", data-icon="arrow-l" } ) %>

A excepción data-role y data-icon no son válidos como nombres de propiedad en C #. Usando @data-role no funciona bien.

¿Hay alguna sintaxis para el trabajo alrededor de esto? O estoy atascado con la creación de un ayudante más especializado que conoce los nombres de los atributos correctos.

¿Fue útil?

Solución

debería ser capaz de utilizar IDictionary<string, object> en lugar del objeto anónimo:

Html.ActionLink<WhateverController>(c => c.Previous(), 
     "Previous", 
     new Dictionary<string, object>
     {
          { "data-role", "button" },
          { "data-icon", "arrow-l"}
     })

Otros consejos

Además de la respuesta de svick, se hizo un cambio ordenado en ASP.NET MVC 3 donde las propiedades que tienen un subrayado en ellos tendrán automáticamente los subrayados convierten en guiones.

Por lo tanto, si usted tiene un código como este:

<%= Html.ActionLink<WhateverController>(c => c.Previous(),  
     "Previous",  
     new { data_role = "button", data_icon="arrow-l") %> 

Se hará que el marcado con guiones:

<a href="/Whatever/Previous" data-role="button" data-icon="arrow-l">Previous</a>  

Debido a que el carácter es también la sustracción / operador menos unario no se puede utilizar en un identificador. Creo que el método de ayuda personalizado es probablemente su mejor apuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top