C#

MVC Model

MVC의 Model에는 비지니스 로직이나 데이타 엑세스를 위한 C# 클래스들을 놓게 된다. 외부 데이타 소스를 엑세스하기 위한 ADO.NET 클래스들이나 Entity Framework 클래스 등이 Model에 놓이게 되며, 비지니스 로직이나 유틸러티 클래스 등을 이곳에 두게 된다. 모델은 /Models 폴더에 일반적으로 .cs 파일로 저장되는데, /Models 안에 서브폴더를 만들어 클래스들을 그룹으로 묶을 수도 있다. 모델 파일을 생성하기 위해서는 /Models 폴더에서 우측하고 Add -> New Item 하여 새 .cs 파일을 추가하면 된다. 이렇게 생성된 모델 클래스는 Controller에 의해 사용된다.

아래 예제는 간단하게 로그인명과 암호를 체크하는 로직을 Model 클래스로 만든 것이다.

// 파일: /Models/LoginManager

public class LoginManager
{
    public static bool CheckLogin(string username, string password)
    {
        var strConn = WebConfigurationManager.ConnectionStrings["DeafultConnection"].ConnectionString;            
        using (SqlConnection conn = new SqlConnection(strConn))
        {
            conn.Open();
            string sql = "SELECT NULL FROM Login WHERE Username=@user AND Password=@pwd";
            SqlCommand cmd = new SqlCommand(sql, conn);                
            cmd.Parameters.AddWithValue("@user", username);
            cmd.Parameters.AddWithValue("@pwd", password);
            object res = cmd.ExecuteScalar();

            return res != null;
        }
    }
}


이러한 모델 클래스는 아래와 같이 Controller에서 호출되어 사용될 수 있다.

// 파일: /Controllers/LoginController

public class LoginController : Controller
{
    // GET: /Login/Check
    public ActionResult Check()
    {
        string user = Request["username"];
        string pwd = Request["password"];

        bool success = LoginManager.CheckLogin(user, pwd);

        ViewBag.Success = success;
        return View();
    }
}


MVC는 데이타 엑세스를 위해 Entity Framework (EF)을 주로 사용하는데, 이 EF의 주요 클래스들도 MVC Models 폴더에 놓이게 된다. Entity Framework 모델 클래스에 대한 자세한 내용은 아래 아티클을 참고한다.

본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

Previous Next Print