の代替ビューを提供するための最善の方法は、私はいくつかのページ、特によくある質問、お客様の声、私はへのリンクを外部パートナーに提供したいビデオを持っています。コンテンツはサイト上にインラインで埋め込まれるか、ポップアップとして表示されます。これは、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);
}
}