ASP-MVC は初めてなので、少し混乱しています。だから私はチュートリアルに従っていましたが、彼らは Model クラス内に ContextDataBase を作成し、それが私の理解を完全に台無しにしました。
データベースからいくつかの文字列 (テキスト形式の HTML コード) を取得し、それをビューに渡す必要があります。すべてのロジック、DB 通信などはコントローラーにある必要があることを理解しています。そこから、取得した値をビューに直接渡すことができますよね?それでは、なぜ私の場合にモデルが必要なのですか?
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();
}
私の友人は、ビューはモデルに基づいており、これらのモデルを介してコントローラーからビューにデータを渡し、その逆を行っていると言っています。
今、私は物事を構築する方法、データベースとの接続をどこに置き、そこから機能を取得するかなどについて混乱しています.
私が尋ねているのは、プロジェクトを注文するための最良の(そして初心者にとっては簡単な方法)方法は何ですか. つまり、DB に接続してそこから情報を取得する関数をどこに置くか。それらはModelクラスまたはControllerにある必要があります。また、コントローラーからビューに情報を渡すのに最適な方法は何ですか?それはモデルを介してですか、それとも直接ですか? もう1つのこと-最初にDBから取得した情報を使用していくつかのロジックを実行し、それをビューに渡す関数もあるため-DBにアクセスするためのコントローラーとは別のコントローラーにある必要があります(DBが必要な場合)最初にコントローラーを介してアクセスできますが、モデルはアクセスできません)?