0

MyMainViewには、複数のPartialViewがあります。

各PartialViewは、MyMainViewで公開されているプロパティに強く型付けされており、各PartialViewにはいくつかの一般的な情報も含まれています。

例えば

public class MainModel
{
    public SubModel1 { get; set; }
    public SubModel2 { get; set; }
    public SubModel3 { get; set; }
    public CommonStuff { get; set; }
}

この共有財産の共有を達成するための受け入れられた慣行はありますか?

SubModelに、親に戻るプロパティを含めることを考えていました。これは推奨/非推奨ですか?

例えば。

public class SubModel1
{
    public int Number { get; set; }
    public MainModel ParentModel { get; set; }
}

ここでの主な目標は、同じデータを何度もロードしないようにすることです。

私が現在見ているモデルの場合、ビュー全体で共有され、ドロップダウンリストなどで使用される一連のルックアップディクショナリです。

4

2 に答える 2

0

子アクションを使用できます。Phil Haackはそれらについてブログを書いています。このようにして、共通の機能全体をメインのライフサイクルとは異なる別のモデル/コントローラー/ビュー ライフサイクルにカプセル化し、それをウィジェットとして埋め込むことができます。

于 2012-06-12T15:51:55.843 に答える
0

この投稿は、混乱を解決するのに役立ちます。

あなたの場合、ほとんどの場合、メイン アクションで完全なモデルをクエリし、それをメイン ビューにフィードする必要があります。メイン ビューから、サブ モデルと共通プロパティの両方に依存する部分ビューにメイン モデルを渡すHtml.RenderPartialか、サブ モデルのみを必要とする部分ビューに渡します。

サブモデルを部分ビューで表示していて、その部分ビューがメイン モデルに依存しない場合は、子アクションを使用する必要があります。部分ビューはメイン ビューから完全に独立しています

特定のセクションにキャッシュ動作を適用する必要がある場合は、子アクションを使用することもできます。

データを何度もクエリする必要があるため、同じモデルを同じビューの 2 つ以上の部分ビューに表示する場合は、子アクションを回避できます。

したがって、解決策は、上記のコメントに基づいて子アクションまたは Html.RenderPartials を慎重に選択することです。

于 2012-06-12T17:39:47.620 に答える