我应该在ASP:NET MVC中为主/详细操作创建一个新的Controller吗?

时间:2016-09-28 09:22:20

标签: c# asp.net-mvc asp.net-mvc-4

在MVC5项目中,有几个主/详细实体如下所示的组/学生:

public class Group
{
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }

    //Navigation Properties
    public virtual ICollection<GroupStudent> GroupStudents { get; set; }
}

public class GroupStudent
{
    [Key]
    public int Id { get; set; }

    //Foreign key for Group
    public int GroupId { get; set; }

    //Foreign key for Student
    public int StudentId { get; set; }

    //Navigation Properties 
    public virtual Group Group { get; set; }

    public virtual Student Student { get; set; }
}

public class Student
{
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }

    //Navigation Properties
    public virtual ICollection<GroupStudent> GroupStudents { get; set; }
}

我为两者创建了一个新的Controller:Group和Student,并在相关的控制器中定义了List,Create,Details和Edit方法。另一方面,我需要进行主/细节操作,即将学生分配给小组。在此步骤中,由于以下情况,我不确定有关此问题的良好方法:

我应该为这些主/细节操作创建一个新的Controller(即GroupStudentController)吗?或者我应该在StudentController或GroupController中创建必要的方法?关于这种主/细节操作的真正惯例是什么?

1 个答案:

答案 0 :(得分:1)

无需创建额外的控制器,只需在任何现有控制器中创建方法,并根据所需方法的业务需求选择控制器。

例如:如果你有一个方法应该将学生分配到一个小组,这个动作将从学生列表页面完成,然后在学生控制器中进行,如果你有一个将从组列表中弹出的页面管理所选组的学生,然后在组控制器中进行。

让您的业务发展。