运算符 '!=' 不能应用于 SelectListItem 类型的操作数

问题描述

我是 ASP.NET MVC 的新手,需要您帮助解决特定问题。

我正在处理学校申请。该应用程序能够在数据库注册学生,校长(管理员)可以将他们分配到组中。

这是控制器的代码

public async Task<IActionResult> GroupInfo(int id,int grade)
    {
        var groupVM = new Groupviewmodel();

        groupVM.Id = id;
        groupVM.Grade = grade;

        foreach (var stud in await userManager.Users.Where(s => s.ApplicationUserType == ApplicationUserType.Student && s.Status == false).ToListAsync())
        {
            var studentviewmodel = new StudentInfoviewmodel
            {
                Id = stud.Id,FirstName = stud.FirstName,LastName = stud.LastName,Email = stud.Email,PrevIoUsGrade = stud.Comments,IsSelected = stud.Status
            };

            groupVM.Students.Add(studentviewmodel);
        }

        ViewBag.Students = groupVM.Students.Where(s => s.PrevIoUsGrade == groupVM.Grade.ToString()).Select(s => new SelectListItem()
        {
            Text = s.FirstName + " " + s.LastName + ",PrevIoUs grade: " + s.PrevIoUsGrade,Value = s.Id
        }).ToList();

        return View(groupVM);
    }

控制器将免费学生分配到小组,但它只显示与小组成绩相匹配的学生。 在我看来,我需要对与小组成绩不符的学生进行验证。

我想检查一下我的观点,这是代码

<form method="post" asp-action="GroupInfo" asp-controller="PrincipalProfile" class="form-horizontal" role="form">

<div class="card">
    <div class="card-header">
        <h2>Add or remove students to current group</h2>
    </div>
    <div class="card-body">
        <div class="form-group">
            <label class="control-label">List of Students</label>
            @if (ViewBag.Students != 0)
            {
                <select asp-for="StudentId" class="form-control" asp-items="ViewBag.Students">
                    <option selected disabled>Choose a student to add</option>
                </select>
            }
            else
            {
                <span>There are no available students at this grade.</span>
            }
        </div>
    </div>
    <div class="card-footer">
        <input type="submit" value="Update" class="btn btn-primary" />
        <a asp-controller="PrincipalProfile" asp-action="Groups" class="btn btn-dark">Cancel</a>
    </div>
</div>

当我尝试检查 viewbag 是否包含信息时,我收到 RuntimeBinderException。

RuntimeBinderException:运算符 '!=' 不能应用于类型为 'System.Collections.Generic.List' 和 'int' 的操作数>

如果您能就如何解决这个问题分享您的愿景和意见,我们将不胜感激。

提前致谢。

解决方法

试试这个


 @if ( ViewBag.Students!=null &&   ViewBag.Students.Count > 0)