수색…


소개

MVC의 뷰 레이어에서 다중 모델 클래스를 사용하는이 주제의 주요 초점

동적 ExpandoObject가있는보기에서 다중 모델 사용

ExpandoObject ( System.Dynamic 네임 스페이스)는 .Net Framework 4.0 에 추가 된 클래스입니다. 이 클래스를 사용하면 런타임에 속성을 객체에 동적으로 추가하고 제거 할 수 있습니다. Expando 객체를 사용하여 모델 클래스를 동적으로 생성 된 Expando 객체에 추가 할 수 있습니다. 다음 예제에서는이 동적 객체를 어떻게 사용할 수 있는지 설명합니다.

교사 및 학생 모델 :

public class Teacher  
{  
    public int TeacherId { get; set; }    
    public string Name { get; set; }  
} 

public class Student  
{  
    public int StudentId { get; set; }  
    public string Name { get; set; }  
}

교사 및 학생 목록 방법 :

public List<Teacher> GetTeachers()  
{  
    List<Teacher> teachers = new List<Teacher>();  
    teachers.Add(new Teacher { TeacherId = 1, Name = "Teacher1" });  
    teachers.Add(new Teacher { TeacherId = 2, Name = "Teacher2" });  
    teachers.Add(new Teacher { TeacherId = 3, Name = "Teacher3" });  
    return teachers;  
}   

public List<Student> GetStudents()  
{  
    List<Student> students = new List<Student>();  
    students.Add(new Student { StudentId = 1, Name = "Student1"});  
    students.Add(new Student { StudentId = 2, Name = "Student2"});  
    students.Add(new Student { StudentId = 3, Name = "Student3"});  
    return students;  
}

컨트롤러 (동적 모델 사용) :

public class HomeController : Controller  
{  
    public ActionResult Index()  
    {  
        ViewBag.Message = "Hello World";  
        dynamic mymodel = new ExpandoObject();  
        mymodel.Teachers = GetTeachers();  
        mymodel.Students = GetStudents();  
        return View(mymodel);  
    }  
}

전망:

@using ProjectName ; // Project Name  
@model dynamic  
@{  
    ViewBag.Title = "Home Page";  
}  
<h2>@ViewBag.Message</h2>  

<h2>Teacher List</h2>  

<table>  
    <tr>  
        <th>Id</th>    
        <th>Name</th>  
    </tr>  
    @foreach (Teacher teacher in Model.Teachers)  
    {  
        <tr>  
            <td>@teacher.TeacherId</td>  
            <td>@teacher.Name</td>  
        </tr>  
    }  
</table>  

<h2>Student List</h2>  

<table>  
    <tr>  
        <th>Id</th>  
        <th>Name</th>  
    </tr>  
    @foreach (Student student in Model.Students)  
    {  
        <tr>  
            <td>@student.StudentId</td>   
            <td>@student.Name</td>  
        </tr>  
    }  
</table> 


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow