次のビューを持つASP.NETMVC2Webアプリケーションがある場合:
- Main.aspx
- Page1.aspx
- Page2.aspx
そして、すべてのビューはSite.masterと呼ばれるMasterViewから継承します。
ページのデフォルトのTitle/H1を設定できるようにしたいのですが、これは派生ビューでオーバーライドできます。
たとえば、Main.aspxには「MySite-xxx」、Page1.aspxには「MySite-Page 1」、Page2.aspxには「MySite-Page2」があります。
また、新しい派生ビューでTitle / H1を設定しないことを選択した場合、マスターTitle/H1が表示されます。
WebFormsを使用すると、次の方法でこれを実現できます。
- マスターrunat="server"でTitle/H1タグを作成します
- マスターコードビハインドで保護されたプロパティを公開する
- 派生ページのコードビハインドのPage_Loadで、プロパティ( Master.Title = "Page 1")を設定します。
- マスターコードビハインドのPage_PreRenderで、Title/H1タグを「マイサイト-」+タイトルに設定します。
ASP.NET MVCでこれをどのように達成できますか?
私はマスターでこれを行うことができます:
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
そして、それをビューに設定します。
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
MySite - Page 1
</asp:Content>
しかし、ビューで「ページ1」しか指定できないようにしたかったので、タイトルが魔法のように「MySite-ページ1」に変更されました。わかる?タイトルの「MySite-」部分は、タイトルのテンプレートである必要があります。
私はおそらくここで明白な何かを見逃しています。:)