2015-10-25 4 views
1

кода контроллера «» 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 класса я получаю эту ошибку. Есть ли какой-нибудь другой способ продолжить его?

ответ

0

ViewBag внутренне сохраняет определенные свойства как объект. Это фактически динамический тип, определенный ExpandoObject, который хранит данные в виде словаря. Как только вы конвертируете custom object в тип object, он не будет знать базовые свойства настраиваемого объекта, если вы его явно не набросали.

Так все, что вам нужно сделать, это брось к пользовательскому объекту перед использованием:

@foreach (вар пункт в ViewBag.dd, как MyPrescription)

@foreach (MyPrescription item in ViewBag.dd) 
+0

okay thankyou. – Anish

+0

Если проблема решена, вы можете принять ее как ответ. это поможет другим пользователям искать похожие проблемы. – vendettamit

+0

На самом деле, я только что создал класс My Prescription как Public, и он сработал. Я не использовал ключевое слово «как». – Anish

0

Является ли ваш MyPrescription классом внутренним? Представления Razor скомпилированы в отдельную сборку, поэтому внутренние классы там недоступны.

Попытка доступа к свойствам недоступного класса из переменной dynamic вызывает исключение, которое вы получаете.

+0

Ни один класс MyPrescription не является внутренним – Anish

+0

@Anish В комментарии к другому ответу вы только что сказали, что сделать класс общественности помогли. Это именно то, что я предложил здесь. –

+0

О, да! Я сделал что-то еще, спасибо, человек! – Anish

Смежные вопросы