1

この種の質問が多く寄せられることは知っていますが、私自身もこの質問を一度したことがありますが、私の問題に合う答えはないようです。特定のアプローチではなく「一般的な」アプローチを行うことで、自分自身や他の人にとってより役立つと思います。

「ビューからコントローラーをロードする」「コントローラーからコントローラーをロードする」「別のビューからコントローラーを使用してビューをロードする」などの質問が頻繁に寄せられますが、これまでのところ、それを行う方法がないわけではないという結論に達しました(私自身がこれに対する解決策を見つけました)それは単なる悪いアーキテクチャの問題です。

私の質問は、良いアーキテクチャとは何ですか?

テンプレート メソッドは、さまざまなビューを読み込んで整理する場合に便利です。それは素晴らしいことです。問題はこれだと思います:

-モデル1、コントローラー1、ビュー1

-モデル2、コントローラー2、ビュー2

-view3

-view4

ビュー 1 または 2 のいずれかにビュー 3 および 4 をロードする方法を見つけることができます。そこに controller2 を含める方法はありません。

私はそれを含める方法を求めているのではなく、正しい方法は何ですか? 「モデルを再利用する」という答えをたくさん見てきました。しかし、それが何を意味するのかよくわかりません。

これに答えても、これまでの問題は解決しないと思いますが(プロジェクトが非常に進んでいるため、やり直す必要があるため)、将来のプロジェクトで最初からそれを行うのに役立ちます.

ご協力ありがとうございました。

4

2 に答える 2

1

ビューのベスト プラクティスの 1 つは、たとえば 3 つのフォルダーのように工夫することです。

  • 一般
  • コンテンツ
  • レイアウト

共通 :メニュー、サイドバー、ヘッダー、フッターなどの多くの html フラグメントと、コメント ボックスなどの小さな部分も含まれます。

コンテンツ:一般的なビューに似ていますが、よりコンテンツに関連したビューであり、一般的なウェブサイトのほとんどで役立ちます。

レイアウト:このフォルダーには、一般的なビューとコンテンツ ビューを含む Web サイトの可能なレイアウトが含まれます。

MVCをより理解するためのビューについては、この記事を確認してください

于 2013-03-27T19:32:09.150 に答える
0

シンプルにするのが好き...

モデルは、データベースまたは他のデータ ソースと対話します。それだけです。データを入力として受け取り、データを返します。

コントローラーはリクエスト エンドポイントとして機能し、アプリケーション フロー/条件を制御します。彼らは (モデルから) 適切なデータを取得し、(ユーザーから) データを検証し、何をすべきかを決定します。次に、適切なビューに適切なデータをロードします。

ビューは、コントローラーが渡したデータを表示する単純な HTML テンプレートです。私のビューに存在する唯一の「処理」は、反復可能な要素を生成するための配列の反復処理、要素/データの書式設定および条件付き表示などです。

あるビューがその中で別のビューをロードする場所として考えられる唯一の実際の例は、ナビゲーション要素や、複数の (すべてではない) ページで繰り返される一般的な HTML であるその他の要素のようなものです。

于 2013-03-27T18:13:18.440 に答える