不包含'IdCriterion'的定义

时间:2012-10-08 05:37:25

标签: asp.net-mvc-3 linq-to-sql

我有一个ViewModel:RolesMVC3.Area.Asesor.Models.ListNotesViewModel

如下:

public class ListNotesViewModel
    {
           public decimal IdTime { get; set; }

           public decimal IdArea { get; set; }

           public decimal IdCriterion { get; set; }

           public decimal Notes { get; set; }

           public decimal IdEstudent { get; set; }
    }

我有一个使用此ViewModel的控制器。

如下:

public ActionResult EstudentsQualification()
   {

    var newItems = (from n in db.Qualification
                    join a in db.AREA on n.IdArea equals a.IdArea
                    join e in db.ESTUDENT on n.IdEstudent equals e.IdEstudent
                    join p in db.TIME on n.IdTime equals p.IdTime
                    join c in db.CRITERION on n.IdCriterion equals c.IdCriterion
                    where n.IdArea == 1 
                    select new ListNotesViewModel { IdCriterion = c.IdCriterion, IdTime = p.IdTime, Notes=n.Note, IdEstudent==e.IdEstudent }).ToList();



     var estu = (from n in db.Qualification
                 join e in db.ESTUDENT on n.IdEstudent equals e.IdEstudent
                 where n.IdArea == 1
                 select e).Distinct().ToList();

     ViewBag.Estudents = estu;
     ViewBag.Time = db.TIME;
     ViewBag.Criterion = db.CRITERION;
     ViewBag.Notes = newItems;

     return View();
 }

关联的观点是:

@{
    ViewBag.Title = "Index";
}

<table border="1">

@foreach (var item4 in ViewBag.Estudents)
{
    <tr>
        <td>
             @item4.CodEstudents - @item4.NameEstudents 
        </td>
         @foreach (var item2 in ViewBag.Time)
         {
             foreach (var item3 in ViewBag.Criterion)
             {
                <td>

                 @if (ViewBag.Notes.IdCriterion == item3.IdCriterion && ViewBag.Notes.IdTime == item2.IdTime && ViewBag.Notes.IdEstudent == item4.IdEstudent)
                 {
                     @ViewBag.Notes.Note 
                 }
                 else
                 {
                     @:nothing
                 }    
               </td>                                                                                                                                                                       

             }
         }

    </tr>
}

</table>

我收到以下错误:

'System.Collections.Generic.List<RolesMVC3.Area.Asesor.Models.ListNotesViewModel>' does not contain a definition for 'IdCriterion'

我无法弄清问题是什么。

1 个答案:

答案 0 :(得分:1)

认为此行导致ViewBag.Notes.IdCriterion

@if (ViewBag.Notes.IdCriterion == item3.IdCriterion && ViewBag.Notes.IdTime == item2.IdTime && ViewBag.Notes.IdEstudent == item4.IdEstudent)

ViewBag.NotesNote的集合。您需要访问Notes中的项目,例如ViewBag.Notes[0].IdCriterionViewBag.Notes[i].IdCriterionforeach(noteItem in ViewBag.Notes)