2011-12-06 9 views
0

私はZenfolioフィードを照会するためのヘルパークラスを作成しています。画像を返して表示します。今、このコードは私のコントローラのビューモデルとコードに分割されています。私はそれをヘルパークラスにまとめたいと思う。すべてのコードはヘルパーに入るのでしょうか、それともヘルパーがHTMLを生成するために応答するだけで、別のクラスにコードを分割しますか?私はグーグルではありますが、私の質問に対する答えは見つかりませんでした。Htmlヘルパーに関しては、データアクセスコードもヘルパークラスに入りますか?

答えて

3

MVCパターン内では、モデル(データ)、ビュー(HTML)、コントローラ(ビューにモデルを与えるもの)が明確に分離されています。

あなたの質問に答えたい場合は、コントローラにモデルをロードしてください。あなたのビューにそれらを表示します。 HTMLヘルパーは、あなたのビューのためだけにHTMLを生成する必要があります。

DisplayTemplateを使用すると、特定のタイプのすべてのモデルで同じViewテンプレートを使用できます。

2

ビューからのデータアクセスは行いません。これは、アクションの良いユースケースのように聞こえ、RenderActionメソッドでコードを再利用しているようです。 [ChildActionOnly]属性を使用してアクションを子アクションとしてマークすると、HTTPリクエストから直接呼び出すことができず、PartialViewという結果が返されます。

実際にHTMLヘルパーを使用して、ViewDataまたはModel(この場合はビューモデル)から取得したデータからHTMLタグを生成する必要があります。

1

HtmlHelperでのデータアクセスは苦しいだけです。

私は、プロジェクトの2番目の開発者がHtmlHelpersに特別なSQLを配置したプロジェクトを継承するのは不幸でした。 HtmlHelpersは最初の開発者によって美しく書かれ、アドホックSQLはORM(第2レベルのキャッシュは無用になった)、作業パターンの単位(トランザクション、無価値)、および設計のあらゆる側面。最終的に、この第2の開発者は、さまざまな要素がデータへのアクセスを共有できるように、より大きなHtmlHelpersを作成する必要がありました。

これはもともとは表示モードで行われていましたが、編集は醜いカスタムJavaScriptの山を介して行われました。すべては、ページがレンダリングされると、データベースに対して600回の同期呼び出しを行ったと言われています。

関連する問題