首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何自动增加参加特定课程的学生人数?

如何自动增加参加特定课程的学生人数?
EN

Stack Overflow用户
提问于 2020-02-05 17:21:58
回答 2查看 163关注 0票数 0

我正在创建一个简单的学生应用程序,并希望表中的一行显示参加特定课程的学生人数(即,每次我批准某个申请时,参加该课程的学生人数应自动递增1)。我已经尝试了所有的方法,会话,linq,但是我不能这样做。下面是我的一些代码,任何建议都是值得欢迎的:

代码语言:javascript
运行
复制
public class Student
{
    [Key]
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; } 
    public string Address { get; set; }
    public string Email { get; set; }
    public string Telephone { get; set; }
    public string Status { get; set; }
    public int IdCourse { get; set; }
    public Course Course { get; set; }
}


public class Course
{
    [Key]
    public int Id { get; set; }
    public string Title { get; set; }
    public int NumberOfStudents { get; set; }
    public ICollection<Student> Student { get; set; }
}


    public ActionResult Index()
    {
        return View(db.Student.Include(b => b.Course).ToList());
    }



@using StudentCourse.Models
@model List<Student>
@{
ViewBag.Title = "Index";
}

 <table>
      <tr>
                <th>Title</th>
                <th>NumberOfStudents</th>    
            </tr>
            @foreach (var item in Model)
            {
        <tr>
            <td>@item.Course.Title<td>
            <td>@item.Course.NumberOfStudents</td>
        </tr>
            }
        </table>

当学生选择某个课程时,我应该批准或拒绝她/他的申请(Status属性):

代码语言:javascript
运行
复制
@Html.RadioButtonFor(b => b.Status, "Accepted", false) Accepted
@Html.RadioButtonFor(b => b.Status, "Rejected", true) Rejected

已批准的申请数量应以自动递增的方式显示在:

代码语言:javascript
运行
复制
<td>@item.Course.NumberOfStudents</td>
EN

回答 2

Stack Overflow用户

发布于 2020-02-05 17:48:57

您的代码不完整,但如果我获得了您想要的内容,请执行以下操作:

  1. 单击视图中的Accept按钮时,
  2. 会将当前课程ID解析为该课程ID,然后将其路由到控制器方法。
  3. 当它到达时,您可以收集发送的课程ID,
  4. ,然后从DB获取特定课程,
  5. 获取当前学生数量,转换为int(如果需要),递增它,然后在DB

上更新获取的行

票数 1
EN

Stack Overflow用户

发布于 2020-02-05 18:01:08

您可以通过在设置的学生部分更新学生数量来保持学生数量的更新,如下所示:

代码语言:javascript
运行
复制
public class Course
{
    private ICollection<Student> _students;

    public int Id { get; set; }
    public string Title { get; set; }
    public int NumberOfStudents { get; set; }

    public ICollection<Student> Students
    {
        get
        {
            return _students;
        }
        set
        {

            _students = value;
            NumberOfStudents = _students?.Count ?? 0;
        }
    }
}

这意味着您不需要将信息保存到数据库来更新numberOfStudents。您还可以在NumberOfStudents的get部分执行学生的Count属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60072594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档