- PR -

マスタページのタイトルを更新したい。

1
投稿者投稿内容
カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2008-01-18 12:53
いつもお世話になります。現在、ASP2.0を使用して開発を行っています。
下のページのマスター コンテンツのオーバーライドの部分を参考にして、マスタページのタイトルをコンテンツページから変更したいと思っています。
http://www.microsoft.com/japan/msdn/net/aspnet/aspnet-masterpages.aspx
ソースがC#の為、VBに置き換えてやっているのですが、コンテンツ側でMe.Master.HtmlTitleを参照しようとするとエラー(※HtmlTitleはSystem.Web.UIMasterPageのメンバではありません。)になってしまいます。マスタページのHtmlTitleはPublicにしているのになぜでしょうか?よろしくご教授下さい。
コード:
■MasterPage.master.vb
Public Class MasterPage
    Inherits System.Web.UI.MasterPage
    Protected m_HtmlTitle As String = "http://www.dotnetdashboard.net"
    'タイトル
    Public Property HtmlTitle() As String
        Get
            Return m_HtmlTitle
        End Get
        Set(ByVal value As String)
            m_HtmlTitle = value
        End Set
    End Property
End Class
■MasterPage.master
<title><% =m_HtmlTitle %></title>
■コンテンツ ページの Page_Load部分
Me.Master.HtmlTitle="新しく設定したいページタイトル"
※エラーになる。



どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-01-18 13:11
今のプログラムがなぜ動かないのかはわかりませんが、単純にページのタイトルを
変えたいだけなら、コンテンツページのPage_Loadで
 Page.Title = ="新しく設定したいページタイトル"
と記述すれば変更されませんか?
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-01-18 13:53
>(※HtmlTitleはSystem.Web.UIMasterPageのメンバではありません。)
ん。Me.Masterは、System.Web.UI.MasterPage型なので、メンバでないとのエラーになります。
ご自身のマスターページ型にキャストしてからメンバへアクセスすればエラーにはなりません。

タイトルに関しては、どっとねっとふぁん様が提示したやり方で設定出来ますね。

[追記]
コンテンツページに
<%@ MasterType VirtualPath="~/Master.master" %>
を記述して厳密な型指定をしておくと、Me.Masterをキャストする必要はなくなります。


[ メッセージ編集済み 編集者: くまっち 編集日時 2008-01-18 14:49 ]
カタナ
大ベテラン
会議室デビュー日: 2006/05/25
投稿数: 110
投稿日時: 2008-01-18 15:40
くまっちさん、どっとねっとふぁんさん ありがとうございます。
くまっちさんのやり方でもできましたし、どっとねっとふぁんさんのやり方でもできました。
今回はページタイトルを変更したいだけなので、どっとねっとふぁんさんの方法でいきたいと思います。
本当にありがとうございました。

よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2008-01-18 17:07
タイトルを切り替えたりしないのであれば、page ディレクティブの title 属性の方がいいかもです。

http://msdn2.microsoft.com/ja-jp/library/ydy4x04a(VS.80).aspx
_________________
C#と諸々
1

スキルアップ/キャリアアップ(JOB@IT)