我有点困惑......因为我是 ASP-MVC 的新手。所以我在学习一个教程,但是他们在 Model 类中创建了一个 ContextDataBase,这完全颠覆了我的理解。
我需要从数据库中获取一些字符串(文本形式的 HTML 代码)并将其传递给视图。我知道所有的逻辑、数据库通信等都应该在 Controller 中。从中我可以直接将检索到的值传递给视图,对吗?那为什么我需要模型呢?
Fe 我的控制器中有以下方法:
public class DBadapterController : Controller
{
private string getConnectionString()
{
return WebConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
}
public string getXMLfromDB()
{
// retrieve the values from the DB and return them as string
}
public String getHTMLfromXML(string xmlFile, string xslFile)
{
//do some stuff here, not relevant
return htmlResult;
}
然后在另一个控制器中,我有将这些东西传递给视图的方法:
public class FuncController : Controller
{
public ActionResult Products()
{
ViewBag.Message = // here get the result from the DBadapterController
return View();
}
我的朋友说,视图是基于他们的模型的,通过这些模型,我将数据从控制器传递到视图,反之亦然。
现在我很困惑如何构建这些东西,将与数据库的连接放在哪里以及从它的函数中检索等等。
我要问的是:订购项目的最佳方式(对于新手来说也是最简单的方式)是什么。即,在哪里有连接到数据库并从那里检索信息的功能;它们应该在模型类中还是在控制器中。此外,如何最好地将信息从控制器传递到视图 - 是通过模型还是直接?另一件事——因为我还有一些函数,首先对从数据库中检索到的信息执行一些逻辑,然后将其传递给视图——它们是否应该位于与用于访问数据库的控制器不同的控制器中(如果数据库要首先可以通过控制器访问,但不能通过模型访问)?