视图数据在不同的列上排序



我让我的控制器将数据从存储的 SQL 过程保存到 Viewdata 中

        using (var SPOutput = command.ExecuteReader())
        {
            foreach (var row in SPOutput)
            {
                outputmodel.Add(new SP_Procedure_RESULTS.student()
                {
                    student_id = (decimal)SPOutput4["student_id"],
                    age = (string)SPOutput4["age"],
                    course_id = (decimal)SPOutput4["course_id"],
                    building_no = (int)SPOutput4["building_no"],
                    room_id = (decimal)SPOutput4["room_id"],
                    status_id = (decimal)SPOutput4["status_id"],
                });
            }
            ViewData["Output"] = outputmodel;

但我想以room_id(每行不同)顺序在我的视图中显示它们。我尝试将最后一行更改为

ViewData["Output"] = new SelectList(outputmodel.OrderBy(x => x.room_id).ToList());

但是,然后我的观点有误

System.NullReferenceException: 'Object reference not set to an instance of an object.'

在生产线上

@foreach (var item in ViewData["Output"] as IEnumerable<app.Models.SP_Procedure_RESULTS.student>)

有人可以告诉我如何更改视图数据的显示顺序吗?

谢谢

对于其他任何寻找答案的人,以及未来的我,控制器上有效的代码是:-

var order = outputmodel.OrderBy(c => c.room_no);
ViewData["Output"] = order;

最新更新