我在我的Page_Init事件期間創建了一個List成員變量。我在* .aspx頁面的嵌入式C#代碼中引用列表中的對象時遇到問題。該錯誤是一個運行時綁定器異常,表示「'對象'不包含'JobID'的定義」。無法在嵌入式ASPX代碼中引用動態對象
當調試器被調用時,我可以看到foreach循環的變量j確實有一個名爲JobID的動態屬性,並且它被填充了一個int值。所以,我的問題是爲什麼我的嵌入式C#代碼無法使用動態對象。是否有需要使用動態對象的<%@ Import%>語句?我嘗試了添加<%@Innotationpace =「System.Dynamic」%>但沒有幫助。
感謝您的幫助。 馬克
後臺代碼:
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>();
}
}
}
}
ASPX代碼:
<select id='cboJob' name='cboJob' style='width: 150px;'>
<%foreach (var j in JobList){ %>
<option value="<%=j.JobID %>"><%=j.JobTitle%> [<%=j.CompanyName%>]</option>
<%} %>
</select>
我與嵌入代碼有同樣的困難,我的代碼隱藏返回IEnumerable。它似乎在某處我的動態被轉換爲對象或其他東西。 @sisdog,即使你修改你的foreach看起來像<%foreach(JobList中的動態j)%>,它似乎不工作。 –
kd7iwp
雖然不是爲什麼它不工作的答案,但可以重寫代碼以使用DataBinder.Eval,它將使用反射來獲取JobID屬性。 – Tony