Asp.net mvc 使用arraylist作为模型时如何在视图中显示数据

Asp.net mvc 使用arraylist作为模型时如何在视图中显示数据,asp.net-mvc,Asp.net Mvc,我有这样一个动作: 我必须通过arraylist中的不同列表发送数据 但无论我做了什么,我都无法在视图中正确显示数据 public ActionResult StudentMainPage(string name) { ViewBag.studentName = name; string[] fullName = name.Split(' '); string firstName = fullName[0]; string

我有这样一个动作: 我必须通过arraylist中的不同列表发送数据 但无论我做了什么,我都无法在视图中正确显示数据

public ActionResult StudentMainPage(string name)
    {
        ViewBag.studentName = name;
        string[] fullName = name.Split(' ');
        string firstName = fullName[0];
        string lastname = fullName[1];
        List<string> CoursesName = new List<string>();
        List<string> teachersName = new List<string>();
        List<string> daysList = new List<string>();
        List<int?> classnumberList = new List<int?>();

        Guid studentId =
            db.Students.Where(s => s.StudentName == firstName && s.StudentLastName == lastname)
                .Select(s => s.Student_Id)
                .First();
        var relatedInfo = db.USP_GetClassInfoFroStudent(studentId).ToList();
        foreach (var item in relatedInfo)
        {
            CoursesName.Add(db.Courses.Where(c => c.CourseId == item.CourseId).Select(c => c.CourseName).First());
            teachersName.Add(db.Teachers.Where(t => t.Teacher_id == item.Teacher_Id)
                .Select(t => t.TeacherLastName)
                .First());
            daysList.Add(
                db.ClassMembers.Where(s => s.DaysInweek == item.DaysInweek).Select(d => d.DaysInweek).First());
            classnumberList.Add(
                db.ClassMembers.Where(n => n.classNumber == item.classNumber).Select(n => n.classNumber).First());
        }
        ArrayList data = new ArrayList();
        data.Add(CoursesName);
        data.Add(teachersName);
        data.Add(daysList);
        data.Add(classnumberList);

        return View(data);

我认为你应该纠正你的外循环

@foreach (var items in Model as ArrayList)
在a
ArrayList
模型中循环遍历每个元素时,没有必要使用索引再次访问它的项,因为它将重复所有4次

List<string> courseName = Model[0] as List<string>;
List<string> teachersName = Model[1] as List<string>;
List<string> daysList = Model[2] as List<string>;
List<int?> classnumeber = Model[3] as List<int?>;
List courseName=Model[0]作为列表;
将teachersName=Model[1]列为列表;
将日期列表=模型[2]列为列表;
将classnumeber=型号[3]列为列表;

我建议移除外部
for loop

razor不会让你这么做。在视图中定义这样的变量是不可能的,因为它应该是
@course
(而不是
@courseName
)。但这是一个糟糕的解决方案。创建视图模型以表示视图中所需的内容。
@foreach (var items in Model as ArrayList)
List<string> courseName = Model[0] as List<string>;
List<string> teachersName = Model[1] as List<string>;
List<string> daysList = Model[2] as List<string>;
List<int?> classnumeber = Model[3] as List<int?>;