Pregunta

Tengo una aplicación ASP.NET MVC que está utilizando una vista única para mostrar las propiedades y los niños (con sus propiedades) de una entidad modelo.

Mi modelo se parece a esto:

public class Market
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public IList<EmailAddress> EmailAddresses { get; set; }
}
public class EmailAddress 
{
    public virtual int ID { get; set; }
    public virtual int MarketID { get; set; }
    public virtual string Email { get; set; }
}

En la vista, quiero usar una tabla para mostrar la lista de direcciones de correo electrónico relacionadas. Para hacer esto, estoy usando html.grid.

<%= Html.Grid(Model.EmailAddresses).Columns( column =>
    {
        column.For(x => x.Email + Html.Hidden("ID", x.ID)).Encode(false).Sortable(false);
    })
    .Attributes(style => "width:100%")
    .Attributes(id => "emailGrid")
    .Empty("There are no Email Addresses set up") %>

Sin embargo, cuando hago esto, la identificación oculta es la del mercado de la entidad matriz, no la del correo electrónico.

¿Cómo remedio esto?

¿Fue útil?

Solución

Parece que podría ser un error en el WebGrid. ¿Ha intentado cambiar el nombre de su campo de identificación en la clase de correo electrónico, por ejemplo, el IDID y pasarlo a WebGrid y ver si se muestra correctamente?

Otros consejos

Esto funciona para mí, ¿podría ser que tenga algo mal en el relleno de su modelo?

Ya que estás usando la expresión de lambda para el Column.For() Método, el parámetro X se refiere a un solo correo electrónico. Creo que quieres referirte al modelo, ni una sola identificación de correo electrónico

En lugar de hacer x.id, creo que solo quieres model.id

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