2012-02-08 30 views
19

Estoy intentando añadir datos adicionales atributo -icono a mi Enlace de acción, pero estoy consiguiendo el error a continuación:Declarador de miembro de tipo anónimo no válido. miembros de tipo anónimos deben declarar con una asignación miembro, nombre simple o acceso de miembros

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

Obras:

@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 }, 
      new { @rel = "external", @id = "btnProfile" }) 

Excepción:

@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 }, 
      new { @rel = "external", @id = "btnProfile", @data-icon = "gear" }) 
+8

en lugar de '@ utilización de datos icon'' @ data_icon' – xandercoded

+0

da la misma excepción – Eugene

Respuesta

24

ACTUALIZACIÓN: Desde el comentario de Xander anteriormente, el uso data_icon = "gear"

Yo u puede utilizar un IDictionary<string, object> en lugar del objeto en el anonimato por atributos HTML:

@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 } 
    , new Dictionary<string, object> 
    { 
     { "rel", "external" }, 
     { "id", "btnProfile" }, 
     { "data-icon", "gear" }, 
    }) 

Ver esta sobrecarga: http://msdn.microsoft.com/en-us/library/dd504988.aspx

El ayudante que está utilizando es sólo un método conveniente de crear el diccionario, pero detrás de las escenas el diccionario se crea de todos modos.

+3

Cuando hago esto, se rinde el enlace tal que: 'Log Off' – xdumaine

+0

Tuve este problema con un punto/punto en mi parámetro (un filtro de clase con un miembro que quería pasar), encontré el siguiente ... '@ Html.ActionLink (" Profile "," Detalles ", nuevo RouteValueDictionary {{" filter.member ", myvalue.ToString()}})' Espero que el formateo funcione, básicamente use RouteValueDictionary en lugar del tipo anónimo? – KeithFearnley

3

sólo tiene que utilizar el siguiente

@using System.Web.Routing 

@{ 
    RouteValueDictionary RouteValues = new RouteValueDictionary(); 

    RouteValues["id"] = 11; 
    RouteValues[Some_Name] = Some_Value; //do this with as many name/value pairs 
             //as you like 
} 

@Html.ActionLink("Link Text", "Action", "Controller", RouteValues) 

la que he aprendido de la respuesta de Jon en this post.

he utilizado sobre todo esto en mis controladores para proporcionar los valores de ruta para RedirectToAction() métodos, pero no veo por qué no debería trabajar en su opinión, tendrá que añadir un @using System.Web.Routing; sin embargo.

16

creo que se utiliza como subrayar data_icon y lo traduce

Cuestiones relacionadas