2009-03-10 6 views
1

ASP.NET MVC RC 1.0で動的マスターページを使用する方法がわかりません。助けてください!ASP.NET MVC RC 1.0で動的マスターページを使用する方法

+0

はSOへようこそ!あなたの質問はあまりにも一般的です。特定の問題が発生している場合は、質問を編集してできるだけ詳細を記入してください。 –

答えて

2

http://forums.asp.net/p/1394235/2991293.aspxには、共通のサイトマスターの子孫を作成し、それを自分のすべてのビューに使用する、合理的に維持可能な解決策があります。 http://www.codeproject.com/KB/aspnet/ASPNETMVCDynamicThemes.aspxでカスタムViewEngineを使用する興味深いCodeProjectエントリもあります。

私もこれを行う必要がありますが、いずれのソリューションもまだ試していないので、全体的にはより良い感じがまだありません。 IMOでは、動的スキニングはMVCにとって重要な機能であり、特にユーザーのパーソナライゼーションに対応するために重要です。

+0

動的スキニングが 'CSS'と呼ばれていませんか? :-D –

+0

George、CSSもそれに含まれますが、パーソナライズされたビューやカスタマイズされたビューは、CSSが提供できるものを上回る可能性があります。 –

8

ビュー()ヘルパー・メソッド使用している場合、マスターページの名前を指定することができます。

return View("About", "AlternateMaster", model); 

をAlternateMasterは〜/ビュー/共有/ AlternateMaster.master

Found this here

3
に解決されます

OnActionExecutedイベントを処理するベースコントローラを作成することで、これを動作させることができます。 OnActionExecutedeventでは、私はマスターページを割り当てます。その後、私は他のすべてのコントローラを基底クラスから継承しました。

public class BaseController : Controller 
{ 
    protected override void OnActionExecuted(ActionExecutedContext filterContext) { 
     var action = filterContext.Result as ViewResult; 
     if (action != null) { 
      action.MasterName = MyApp.Properties.Settings.Default.Theme; 
     } 

     base.OnActionExecuted(filterContext); 
    } 
} 

I wrote a post about thisあなたはより詳細な情報を必要な場合

+0

これは問題なく動作しますが、子アクションを使用すると失敗します。これは子アクションのマスターページも設定するためです! – Androme

関連する問題