ViewModel C# mvc da view ile model arasında many bind işlemini yapmak için kullanılıyor. örnek C# MVC;
UserController:Controller
{
public UserController(){}
public ActionResult Index(){
var users = new UsersContext();
return View(users.All());
}
}
Index.cshtml
@model IEnumerable<User>
@foreach(var user in model){
@Html.LabelFor(s=>s.Username)
@Html.LabelFor(s=>s.Name)
}
şeklide oluyor.
ViewModel devreye girince
UserController:Controller
{
public UserController(){}
public ActionResult Index(){
var countries = new CountryContext();
var users = new UsersContext();
var userViewModel = new UserViewModel();
UserViewModel.Users = users.All();
UserViewModel.Countries= countries.ByUsers(users); //
return View(userViewModel);
}
}
Index.cshtml
@model UserViewModel
@foreach(var user in model.Users){
@Html.LabelFor(s=>s.Username)
@Html.LabelFor(s=>s.Name)
}
@foreach(var user in model.Countries){
@Html.LabelFor(s=>s.CountryName)
}
Repository Pattern ile Service Layer işleri girince farklı oluyor. Bunların yanına DI & IoC katarsan über.