Estoy creando una variable miembro de lista durante mi evento Page_Init. Tengo un problema al hacer referencia a los objetos en la lista de mi código incrustado de C# en la página * .aspx. El error es una Excepción de encuadernación en tiempo de ejecución que dice que "'objeto' no contiene una definición para 'ID de trabajo'".No se pueden hacer referencia a objetos dinámicos en el código ASPX incorporado
Cuando se invoca el depurador, puedo ver que la variable j del bucle foreach sí tiene una propiedad dinámica llamada ID de tarea y está llena de un valor int. Entonces, mi pregunta es por qué mi código de C# incrustado no puede funcionar con el objeto dinámico. ¿Existe una declaración <% @ Import%> que deba trabajar con objetos dinámicos? Intenté agregar <% @ Import namespace = "System.Dynamic"%> pero eso no ayudó.
Gracias por la ayuda. Marcos
código subyacente:
using System;
using System.Collections.Generic;
using System.Linq;
using Jobbarama.WebCode;
using DataModel;
public partial class contact : System.Web.UI.Page
{
public List<dynamic> JobList { get; set; }
protected void Page_Init(object sender, EventArgs e)
{
SessionManager mgr = SessionManager.Current;
using (myEntities context = new myEntities())
{
var qry = from c in context.vjobList
where c.CampaignID == mgr.CampaignID
select new
{
c.JobID, c.JobTitle, c.CompanyName, c.InterestDate, c.InterestLevel
};
JobList = qry.ToList<dynamic>();
}
}
}
}
Código ASPX:
<select id='cboJob' name='cboJob' style='width: 150px;'>
<%foreach (var j in JobList){ %>
<option value="<%=j.JobID %>"><%=j.JobTitle%> [<%=j.CompanyName%>]</option>
<%} %>
</select>
Estoy teniendo la misma dificultad con el código incrustado donde mi código subyacente devuelve un IEnumerable. Parece que en alguna parte mi dinámica se está convirtiendo en un objeto o algo. @sisdog, incluso si modifica su foreach para que parezca <% foreach (dynamic j en JobList)%>, parece que no funciona. –
kd7iwp
Si bien no es una respuesta a por qué no está funcionando, puede volver a escribir su código para usar DataBinder.Eval que recurriría a la utilización de la reflexión para tomar la propiedad JobID. – Tony