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 모델 클래스에 대한
자세한 내용은 아래 아티클을 참고한다.