【发布时间】:2012-09-26 08:58:39
【问题描述】:
我找到的关于如何设置 ASP.NET MVC 项目的大多数(几乎全部?)示例都是直接在控制器中访问数据库上下文。
例如this:
public class MoviesController : Controller
{
private MovieDBContext db = new MovieDBContext();
//
// GET: /Movies/
public ViewResult Index()
{
return View(db.Movies.ToList());
}
我也知道有很多控件(至少对于aspx视图引擎来说)可以直接绑定到数据库中的一个表作为数据源,让它自动显示数据。
对我来说,这感觉很奇怪,我希望在表示层和数据库之间进行某种分离。在视图中使用它们之前,将数据从数据库映射到视图模型的某种业务层和/或数据层。只是我还是这些例子都是这样的,因为它更容易做到?我错过了一些巨大的收获吗?我想它有点快,但感觉就像我不应该在我的数据库中使用与我的视图中相同的模型。我终于找到了感觉更正确的an example,其中数据库模型与视图模型是分开的。但它只是一百个例子。
您对此有何看法?
【问题讨论】:
-
好吧,我想说...因为它们是 MVC 示例。他们背后的想法和动机只是简单地说什么是 MVC,什么不是。
-
如果你想学习MVC,你很可能会找到类似的例子。如果您想学习如何与多个层中的对象交互(如何编写应用程序架构),那么您应该明确地谷歌它。
-
控制器不是表现层,视图是表现层。
-
谨防 Hello World 示例!
-
示例来自一个非常基础的 ASP.NET MVC4 教程,"Accessing Your Model's Data from a Controller"。
标签: c# asp.net asp.net-mvc-3 razor