asp.net-mvc
하나의보기에서 여러 모델 사용
수색…
소개
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