2

マスターページを使用していますが、@Pageディレクティブからページタイトルを設定できません。すべてのクラスは、 ASP.NETSystem.Web.UI.Pageクラスから継承するクラスmyPageから継承します。注意:マスターページのヘッドタグにrunat="server"を設定しています。

test.aspx.vbファイルの@ページディレクティブは次のようになります。

<%@ Page language="VB" MasterPageFile="~/MainMaster.master" 
autoeventwireup="false" CodeFile="test.aspx.vb" 
Inherits="test" Title="test" %>

test.aspx.vbは次のようになります

Partial Class test
    Inherits myPage

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

End Class

これは私のマスターファイル、MainMaster.masterがどのように見えるかです:

<%@ Master Language="VB" CodeFile="MainMaster.master.vb" Inherits="MainMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title>untitled</title>
</head>
...

これで、ブラウザでtest.aspxを表示すると、「test」というタイトルが表示されるはずです。ただし、代わりに、マスターページに従って「無題」が表示されます。試行錯誤の末、次のようにmyPageではなく、 System.Web.UI.Pageから直接継承するようにテストクラスを変更しました。

Partial Class test
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

End Class

そして、すべてがうまくいきました。私のページがSystem.Web.UI.PageではなくmyPageの子であるために、@ Pageディレクティブでタイトルが正しく設定されないのはなぜですか?

すべてのページのPage_Loadメソッドを使用してプログラムでページタイトルを設定できることに気付きましたが、.aspxファイルの@Pageディレクティブで設定したいと思います。

これは非常に奇妙で苛立たしい問題であり、私は途方に暮れています!

ありがとう!!!

4

3 に答える 3

0

私はあなたと非常によく似た設定をしています。ページから継承しているカスタム ベース ページから継承するコンテンツ ページがあります。タイトルがaspxに設定され、ブラウザに表示されることに問題はありません。私のコードとあなたのコードの唯一の違いは、私のマスター ページには autoeventwireup プロパティがあり、あなたのマスター ページにはありません。また、あなたのマスター ページには codefile というプロパティがあり、私のマスター ページには分離コードがあることです。

コンテンツページ:

<%@ Page Title="Login to Application X" Language="vb" AutoEventWireup="false" MasterPageFile="~/masterpages/mymasterpage.Master"
    CodeBehind="login.aspx.vb" Inherits=".login" %>

マスター ページ:

<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="mymasterpage.master.vb"
    Inherits=".mymasterpage" %>
于 2009-01-29T21:36:06.283 に答える