0
我已經讀過,在MVC應用程序中,應該保持控制器「瘦」。但是當我在ViewModel中提取數據時,我覺得定位不太直觀,這意味着當我排除故障時,我通常傾向於首先查看我的控制器(或者這可能是我真正的問題)。此外,如果您通過控制器傳遞數據,我發現可以將相同的VM用於許多不同的事情。哪些代碼更適合正確的MVC方法?將代碼放在控制器或ViewModel中?
我違反了一些大原則還是導致性能問題?
例如,比較兩種方法,這些假片斷,似乎都蠻好的工作:
假設一個名爲repositoryy與方法GetCourses()存儲庫獲取課程的列表。
1)視圖模型獲取數據和控制器指示的流量:
public CourseViewModel
{
private MyProjectEntities db = new MyProjectEntities();
Repository repository = new Repository();
{
public CourseViewModel()
{
Courses = db.Course.ToList();
}
public List<Course> Courses {get; set;}
}
}
public class CourseController : Controller
{
public ActionResult Index()
{
var courseviewmodel = new CourseViewModel();
return View(courseviewmodel);
}
}
2)控制器獲取數據,傳送到視圖模型,然後到檢視:
public CourseViewModel
{
public List<Course> Courses {get; set;}
}
public class CourseController : Controller
{
public ActionResult Index()
{
var courseviewmodel = new CourseViewModel();
courseviewmodel.Courses = repository.GetCourses.ToList();
return View(courseviewmodel);
}
}
謝謝,我很放心。第一種方法回答太多的SO問題更爲正確。我想如果VM有代碼,測試也會成爲一個問題。 – SKale