2015-03-11 3 views
0

Я хочу использовать несколько моделей в одном представлении, я крашу некоторые статьи, чтобы использовать сложную модель, или частичный вид, или Viewbag и другие, но не смогли найти нормальный ответ.ASP.MET MVC Несколько моделей в одном представлении

Я хочу отображать данные из разных моделей. Вот мои модели

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; } 
} 

ответ

2

Объедините все свои модели в одной общей модели обзора и используйте ее в своем представлении.

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) 
    ..... 

И в вашем почтовом методе действия

public ActionResult MethodName(ViewModelName viewModel) 
{ 
    // 
} 
+0

Я не могу получить его, пожалуйста, помогите, что я должен написать в мой контроллер? Я только хочу отображать отделы и преподавателей на мой взгляд. –

+0

Чтобы отобразить их, сначала вам нужно получить их из своей базы данных и присвоить их значения вашей модели просмотра, тогда вы можете показать желаемый результат в своем представлении. – vortex

1

Пытаться создать класс (например, менеджер), где вы добавить переменную для отдела, ClassOut, ClassOutName а затем передать менеджер класса к представлению, а затем вы можете получить доступ легко

public class Manager 
{ 
    public Department dept; 
    public ClassOut cl; 
    public ClassOutName clname; 
} 
Смежные вопросы