簡體   English   中英

“對象”不包含“ rxDetail”的定義

[英]'object' does not contain a definition for 'rxDetail'

控制器代碼

public ActionResult Index()
        {
            var data = (from pd in db.Prescription_Details join md in db.Medicine_Details 
                        on pd.Medicine_Id equals md.Medicine_Id 
                        select new MyPrescription {rxDetail=pd.Rx_Detail_Id , medicineName=md.Medicine_Name , dosageFrequency= pd.Dosage_Frequency}).ToList();  

            var prescs = db.Prescription_Details.Select(x => x.Prescription.Doctor_Details.Doctor_Name).Distinct().ToList();
            //entity
            ViewBag.prescriptions = prescs;
            ViewBag.dd = data;
            return View();
        }

Razor code 
 @foreach (var item in ViewBag.dd)
                                        {
                                            <tr>
                                                <td>@item.rxDetail</td>
                                                <td>@item.medicineName</td>
                                                <td>@item.dosageFrequency</td>
                                            </tr>
                                        }

除了創建新類MyPrescriptions之外,我還會遇到此錯誤。 還有其他方法可以繼續嗎?

您的MyPrescription類是內部類嗎? 剃刀視圖被編譯為單獨的程序集,因此內部類無法在其中訪問。

嘗試從dynamic變量訪問無法訪問的類的屬性會引發異常。

ViewBag內部將定義的屬性值存儲為Object。 它實際上是ExpandoObject定義的動態類型,將數據存儲為字典。 一旦將任何custom object轉換為類型object ,除非明確地將其強制轉換,否則它將不知道自定義對象的基礎屬性。

因此,您需要做的就是將其轉換為自定義對象,然后再使用:

@foreach(ViewBag.dd中的變量項作為MyPrescription)

@foreach (MyPrescription item in ViewBag.dd)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM