1

「PartialA」と「PartialB」という2つの部分ビューを含む「Container」という名前の部分ビューがあるとします。'Conatiner'パーシャルビューでは、メインビューで'Container'パーシャルビューを使用するときに、内部ビューの可視性、つまり、PartialAとPartialBの両方をレンダリングするか、単にレンダリングするかを制御できるように、ある種の構成機能が必要です。それらのいずれか、またはまったくない。基本的に、メインビューでレンダリングする内部ビューを決定する必要があります。

これを達成するための最良の方法は何ですか?

4

2 に答える 2

3
  1. 1つのフラグを含む(または既存のフラグに追加する)コンテナに渡すビューモデルを作成します。

    public bool PartialAVisible;
    public bool PartialBVisible;
    
  2. メインビューを呼び出すコントローラーまたはメインビュー内に可視性を設定して、コンテナーに渡すように、可視性フラグを設定します。

  3. コンテナで次のロジックを実行します

    if (PartialAVisible)
       @Html.Partial("PartialA", model)
    if (PartialBVisible)
       @Html.Partial("PartialB", model)
    

お役に立てれば

于 2012-09-17T22:01:00.020 に答える
0

アプリケーション全体でこれが必要になる場合は、System.Web.Mvc.ViewPageから継承して、そこにルールを追加できます。

public class ViewPageBase : System.Web.Mvc.ViewPage
{
    public bool PartialAVisable
    { 
        get
        {
            //Determin if visable
        }

    }

    public bool PartialBVisable
    { 
        get
        {
            //Determin if visable
        }

    }

    protected override void Render(HtmlTextWriter writer)
    {
        if (PartialAVisable)
        {
            //Apend partail A
        }

        if (PartialBVisable)
        {
            //Apend partail B
        }

        base.Render(writer);
    }
}
于 2012-09-17T22:48:39.030 に答える