2009-03-30 6 views
0

の代替ビューを提供するための最善の方法は、私はいくつかのページ、特によくある質問、お客様の声、私はへのリンクを外部パートナーに提供したいビデオを持っています。コンテンツはサイト上にインラインで埋め込まれるか、ポップアップとして表示されます。これは、ASP.NET MVCサイト向けです。いただきました同じ内容

希望bahavior:私は、このような私はより多くを必要とするかもしれないいくつかの時点で、「CSS-フリー」のマークアップ

  • のための「ポップアップ」または「インライン」などの異なる「モード」を指定する必要があります

    • 追加のクエリパラメータを使用してページの高度なバージョン。これが私がクエリパラメータを使用している理由です。簡単に追加または削除できます。私は、希望の「ビュー」がアクションパラメータのいずれかに決定されるべきだとは思わない。通常、別のマスターページを提供
    • は異なってフォーマットする必要があるかもしれないコンテンツbecasue十分な解決策ではありません。私はここに提供しています何

    は、私が現在使用している完全に動作するソリューションです。私はフレームワークの機能が内蔵されて私は野生

    Bにこれをリリースしようよ)そこに - 私はちょうど

    a)は任意の明白な欠落があるかどうかを確認するためにここでそれを投げていますその便利 他の誰にもあれば「)

    Cを使用することを忘れメートル。

    私がメインサイトで使用するプライマリページであるFAQ.aspxという3つのビューファイルがあります。これには部分図FAQContent.ascxが含まれます。またFAQContent.ascxが含まFAQPopup.ascxはなく、別のcssファイルなしマスターページでもあります。

    public class QuestionsController : Controller 
        { 
         [OutputCache(CacheProfile = "ContentPage", VaryByParam = "mode")] 
         public ActionResult FAQ(string mode) 
         { 
          // determine mode 
          if (mode == "popup") 
          { 
           // popup mode 
           return FAQPopup(); 
          } 
          else if (mode == "inline") 
          { 
           // popup mode 
           return FAQContent(); 
          } 
    
          else 
          { 
           // normal mode 
           FAQModel model = new FAQModel() 
           { 
           }; 
           UpdateModel(model); 
    
           return View(model); 
          } 
         } 
    
         [OutputCache(CacheProfile = "ContentPage")] 
         public ActionResult FAQPopup() 
         { 
          FAQModel model = new FAQModel() 
          { 
    
          }; 
          UpdateModel(model); 
    
          return View("FAQPopup", model); 
         } 
    
         [OutputCache(CacheProfile = "ContentPage")] 
         public ActionResult FAQContent() 
         { 
          FAQModel model = new FAQModel() 
          { 
    
          }; 
          UpdateModel(model); 
    
          return View("FAQContent", model); 
         } 
        } 
    
  • 答えて

    関連する問題