자습서: ASP.NET MVC 앱을 사용하여 EF Database First에 대한 뷰 생성
MVC, Entity Framework 및 ASP.NET 스캐폴딩을 사용하여 기존 데이터베이스에 대한 인터페이스를 제공하는 웹 애플리케이션을 만들 수 있습니다. 이 자습서 시리즈에서는 사용자가 데이터베이스 테이블에 있는 데이터를 표시, 편집, 만들기 및 삭제할 수 있도록 하는 코드를 자동으로 생성하는 방법을 보여 줍니다. 생성된 코드는 데이터베이스 테이블의 열에 해당합니다.
이 자습서에서는 ASP.NET 스캐폴딩을 사용하여 컨트롤러 및 뷰를 생성하는 데 중점을 둡니다.
이 자습서에서는 다음을 수행합니다.
- 스캐폴드 추가
- 새 보기에 대한 링크 추가
- 학생 보기 표시
- 등록 보기 표시
필수 조건
- 웹 애플리케이션 및 데이터 모델 만들기
- Visual Studio 2022를 사용하는 경우 Net Framework 프로젝트 및 항목 템플릿을 설치합니다. 자세한 내용은 이 GitHub 이슈를 참조하세요.
스캐폴드 추가
모델 클래스에 대한 표준 데이터 작업을 제공하는 코드를 생성할 준비가 된 것입니다. 스캐폴드 항목을 추가하여 코드를 추가합니다. 추가할 수 있는 스캐폴딩 유형에는 여러 가지 옵션이 있습니다. 이 자습서에서 스캐폴드에는 이전 섹션에서 만든 학생 및 등록 모델에 해당하는 컨트롤러와 뷰가 포함됩니다.
프로젝트에서 일관성을 유지하기 위해 기존 Controllers 폴더에 새 컨트롤러를 추가합니다 . Controllers 폴더를 마우스 오른쪽 단추로 클릭하고새 스캐폴드된 항목추가>를 선택합니다.
Entity Framework 옵션을 사용하여 보기가 있는 MVC 5 컨트롤러를 선택합니다. 이 옵션은 모델의 데이터를 업데이트, 삭제, 만들기 및 표시하기 위한 컨트롤러 및 뷰를 생성합니다.
모델 클래스 에 대해 Student(ContosoSite.Models) 를 선택하고 컨텍스트 클래스에 대해 ContosoUniversityDataEntities(ContosoSite.Models) 를 선택합니다. 컨트롤러 이름을 StudentsController로 유지합니다.
추가를 클릭합니다.
오류가 발생하면 이전 섹션에서 프로젝트를 빌드하지 않았기 때문일 수 있습니다. 그렇다면 프로젝트를 빌드한 다음 스캐폴드된 항목을 다시 추가합니다.
코드 생성 프로세스가 완료되면 프로젝트의 컨트롤러 및 ViewsStudents 폴더에 새 컨트롤러와 뷰>가 표시됩니다.
동일한 단계를 다시 수행하지만 등록 클래스에 대한 스캐폴드를 추가합니다. 완료되면 EnrollmentsController.cs 파일과 만들기, 삭제, 세부 정보, 편집 및 인덱스 보기가 있는 등록이라는 보기 아래에 폴더가 있습니다.
새 보기에 대한 링크 추가
새 보기로 쉽게 이동할 수 있도록 학생 및 등록을 위한 인덱스 보기에 몇 개의 하이퍼링크를 추가할 수 있습니다. 사이트의 홈 페이지인 Views>Home>Index.cshtml에서 파일을 엽니다. 점보트론 아래에 다음 코드를 추가합니다.
<div>
@Html.ActionLink("List of students", "Index", "Students")<br />
@Html.ActionLink("List of enrollments", "Index", "Enrollments")
</div>
ActionLink 메서드의 경우 첫 번째 매개 변수는 링크에 표시할 텍스트입니다. 두 번째 매개 변수는 작업이고 세 번째 매개 변수는 컨트롤러의 이름입니다. 예를 들어 첫 번째 링크는 StudentsController의 인덱스 작업을 가리킵니다. 실제 하이퍼링크는 이러한 값에서 생성됩니다. 첫 번째 링크는 궁극적으로 사용자를 Views/Students 폴더 내의 Index.cshtml 파일로 이동합니다.
학생 보기 표시
프로젝트에 추가된 코드가 학생 목록을 올바르게 표시하고 사용자가 데이터베이스에서 학생 레코드를 편집, 만들기 또는 삭제할 수 있도록 하는지 확인합니다.
Views>Home>Index.cshtml 파일을 마우스 오른쪽 단추로 클릭하고 브라우저에서 보기를 선택합니다. 애플리케이션 홈페이지에서 학생 목록을 선택합니다.
인덱스 페이지에서 학생 목록과 이 데이터를 수정하기 위한 링크를 확인합니다. 새로 만들기 링크를 선택하고 새 학생에 대한 일부 값을 제공합니다. 만들기를 클릭하면 새 학생이 목록에 추가됩니다.
인덱스 페이지로 돌아가서 편집 링크를 선택하고 학생의 일부 값을 변경합니다. 저장을 클릭하고 학생 레코드가 변경된 것을 확인합니다.
마지막으로 삭제 링크를 선택하고 삭제단추를 클릭하여 레코드를 삭제할지 확인합니다.
코드를 작성하지 않고도 Student 테이블의 데이터에 대한 일반적인 작업을 수행하는 뷰가 추가되었습니다.
필드의 텍스트 레이블이 웹 페이지에 표시하려는 데이터베이스 속성(예: LastName)을 기반으로 한다는 것을 알 수 있습니다. 예를 들어 레이블을 성으로 사용하는 것이 좋습니다. 자습서의 뒷부분에서 이 표시 문제를 해결합니다.
등록 보기 표시
데이터베이스에는 학생 테이블과 등록 테이블 간의 일대다 관계와 과정 테이블과 등록 테이블 간의 일대다 관계가 포함됩니다. 등록에 대한 보기는 이러한 관계를 올바르게 처리합니다. 사이트의 홈페이지로 이동하여 등록 목록 링크를 선택한 다음 , 새로 만들기 링크를 선택합니다.
보기에는 새 등록 레코드를 만들기 위한 양식이 표시됩니다. 특히 양식에는 CourseID 드롭다운 목록과 StudentID 드롭다운 목록이 포함되어 있습니다. 둘 다 관련 테이블의 값으로 채워집니다.
또한 제공된 값의 유효성 검사는 필드의 데이터 형식에 따라 자동으로 적용됩니다. 등급 에는 숫자가 필요하므로 호환되지 않는 값을 제공하려고 하면 오류 메시지가 표시됩니다. 필드 등급은 숫자여야 합니다.
자동으로 생성된 뷰를 통해 사용자가 데이터베이스의 데이터를 사용할 수 있는지 확인했습니다. 이 시리즈의 다음 자습서에서는 데이터베이스를 업데이트하고 웹 애플리케이션에서 해당 변경을 수행합니다.
다음 단계
이 자습서에서는 다음을 수행합니다.
- 스캐폴드 추가됨
- 새 보기에 대한 링크가 추가됨
- 표시된 학생 보기
- 표시된 등록 보기
다음 자습서로 이동하여 데이터베이스를 변경하는 방법을 알아봅니다.