1

我有一个自定义班级学生,如下所示:

     public class Student
     {
         public string Name {get;set;}
         public string GuardianName {get;set;}
     }

现在,我有以下数据结构中的数据

      IList<Student> studInfo=new List<Student>();

我已将此数据放入 viewbag

      Viewbag.db=studInfo;

在查看页面上,当我尝试使用

    <table>
       <thead>
            <tr>
                 <td>Name</td>
                 <td>Guardian Name</td>
            </tr>
        </thead>

     @foreach(var stud in ViewBag.db)
     {
          <tr>
              <td>@stud.Name</td>
              <td>@stud.GuardianName</td>
          </tr>

     }
    </table>

有错误,说

Cannot implicitly convert type 'PuneUniversity.StudInfo.Student' to 'System.Collections.IEnumerable'

PuneUniversity 是我的命名空间,StudInfo 是应用程序名称。请建议我一个解决方案。提前致谢

4

1 回答 1

1

以下行不太可能编译:

IList<Student> studInfo = new IList<Student>();

您不能创建接口实例。所以我猜你的实际代码与你在这里显示的不同。

另外,我建议您使用强类型视图而不是 ViewBag:

public ActionResult SomeAction()
{
    IList<Student> students = new List<Student>();
    students.Add(new Student { Name = "foo", GuardianName = "bar" });
    return View(students);
}

现在让你的视图强类型化:

@model IEnumerable<Student>

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Guardian Name</th>
        </tr>
    </thead>
    <tbody>
    @foreach(var stud in Model)
    {
        <tr>
            <td>@stud.Name</td>
            <td>@stud.GuardianName</td>
        </tr>
    }
    </tbody>
</table>
于 2012-11-23T12:04:39.453 回答