2

MVC Web フレームワークに関して私が話した限られた数の人々から、フォームのことは忘れて、ビュー ファイルには理想的には HTML マークアップ、文字列操作、およびいくつかのfor eachループを含める必要があると言う人がいるのを聞いたことがあります。ifまた、可能であれば、ビュー内のステートメントは避けるべきだと言われました。これは一般的に同意されていますか?

編集:この質問に影響を与えた状況は、ナビゲーションを書いていることです。私は自分自身が書いていることに気づきました:

if secondary_navigation_item has children
    ...

私が考えているのは、理想的には、これは論理と見なされるのでしょうか (それはここにあってはなりません)。

4

3 に答える 3

4

一般的に言えば、ビューにはサーバー側のビジネス ロジックを含めるべきではありません。ただし、ビューのレンダリングに直接関連するロジックを含めることはできます。

例としては、表示が特定のフィールドの設定に依存する、ある種のバリアント レコードを含むビューがあります。たとえば、性別フィールドが男性または女性に設定されていることに応じて、異なる情報を表示するレコード。もちろん、これにはif声明が必要です。

于 2010-06-20T15:04:12.160 に答える
4

ビューに条件付きロジックを含めるべきではないと言うのは、ばかげています。「新しいメッセージ」アイコンやフラッシュ メッセージなどの UI 要素を生成するには、それ以外にどのような方法がありますか? 考えられるインターフェイスの状態ごとに異なるビュー テンプレートを使用しますか? データ操作はモデルに属しているため、コントローラーに変数の割り当てを含めるべきではないと言っているようなものです。

ビュー関連のロジックである限り、ビューにロジックを含めることはまったく問題ありません。model-view-controller の定義の絶対的な解釈や衒学的な解釈にとらわれるべきではありません。MVC の根底にある概念を理解して適用している限り、正しい方向に進んでいます。

すべてのルールには例外があり、コントローラーで文字列操作を行ったり、ビューでアプリケーション フローを実装したりする場合もあります場合によっては、ケースバイケースで評価し、少し常識を適用する必要があります。

于 2010-06-20T16:02:03.477 に答える
2

ビューには基本的に以下が含まれている必要があります。

  • HTML マークアップ
  • Javascript
  • CSS
  • 表示する必要があるサーバー側のコードの最小数

そのため、ビューには通常、レイアウト要素が含まれている必要があります。主な処理ロジックは Controller に入れる必要があります。

より詳しい情報:

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93コントローラ

于 2010-06-20T14:55:33.987 に答える