ユーザー設定に基づいて、asp.net mvc で MasterPage や .css を動的に変更する良い方法はありますか?
次のようにマスター名を変更できることを理解しています。
return View("viewName", "master-name", oModel)
おそらく別の contentPlaceHolder を使用するビューですが、各コントローラーとアクションを変更する必要があります。
これよりも良い方法があると仮定する必要があります。
ユーザー設定に基づいて、asp.net mvc で MasterPage や .css を動的に変更する良い方法はありますか?
次のようにマスター名を変更できることを理解しています。
return View("viewName", "master-name", oModel)
おそらく別の contentPlaceHolder を使用するビューですが、各コントローラーとアクションを変更する必要があります。
これよりも良い方法があると仮定する必要があります。
私はやや単純な方法を持っています:
return View("View", getMasterName());
私のマスターコントローラーには、次のものがあります。
protected string getMasterName() {
return (Request.QueryString["tb"] == null) ? null : "Other_Master";
}
これを使用して、thickbox ポップアップの場合と、たとえば、javascript が機能せず、thickbox なしでコントローラーが読み込まれた場合とで異なるテンプレートを表示します。
これは興味深い読書です http://developmentalmadness.blogspot.com/2009/06/aspnet-mvc-discover-masterpagefile.html