【问题标题】:ASP.MET MVC Multiple Model in One View一个视图中的 ASP.NET MVC 多个模型
【发布时间】:2015-03-11 12:47:35
【问题描述】:

我想在一个视图中使用多个模型,我红了一些文章使用复杂的模型,或部分视图,或 Viewbag 等,但找不到正常的答案。

我想显示来自不同模型的数据。 这是我的模型

 public class Department
{
    public int DepartmentID { get; set; }
    public string DepartmentName { get; set; }
    public string Image { get; set; }

    public IEnumerable<Teacher> Teachers { get; set; }
}

 public class Teacher
{
    public int TeacherID { get; set; }
    public string TeacherName { get; set; }
    public string TeacherLname { get; set; }
    public int DepartmentID { get; set; }
    public string Image { get; set; }

    public Department Department { get; set; }


}
 public class ClassOut
{
    public int Id { get; set; }
    public string ClassOutName { get; set; }
}



 public class SchoolDbContext:DbContext
{
    public DbSet<Teacher> Teachers { get; set; }
    public DbSet<Department> Departments { get; set; }
    public DbSet<ClassOut> ClassOuts { get; set; }
}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


    【解决方案1】:

    将您的所有模型组合到一个通用视图模型中,并在您的视图中使用它。

    public class ViewModelName 
    {
        public Department Department {get; set;}
        public Teacher Teacher {get; set;}
        public ClassOut ClassOut {get; set;}
    }
    

    将此模型用于您的视图:

        @model ViewModelName
        ......
        @Html.TextBoxFor(x => x.Teacher.TeacherName )
        .....
    

    在你的 post action 方法中

    public ActionResult MethodName(ViewModelName viewModel)
    {
        //
    }
    

    【讨论】:

    • 我无法得到它,请帮助我应该在我的控制器中写什么?我只想在我的视图中显示部门和教师
    • 为了显示它们,首先您需要从数据库中获取它们并将它们的值分配给您的视图模型,然后您可以在视图中显示所需的结果。
    【解决方案2】:

    尝试创建一个类(例如 Manager),在其中添加 Department、ClassOut、ClassOutName 的变量,然后将 Class Manager 传递给视图,然后您可以轻松访问

    public class Manager
    {
      public Department dept;
      public ClassOut cl;
      public ClassOutName clname;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多