使用VWD 2008 Express和C#。我創建了一些網頁而不使用母版頁。後來決定我想用一個母版頁,所以我想我會先做一個測試頁。創建主頁面,然後添加新項目(TestMstr.aspx)和選擇主頁面選項。在MasterPage.master.cs中添加了'string'類型的公共屬性,這樣我就可以通過從內容頁面設置屬性來設置母版頁中的標籤文本。在內容頁這需要@MasterType頁面指令:ASP.NET @MasterType指令不工作
<%@ MasterType virtualpath="~/MasterPage.master" %>
一切都在測試頁上的工作很大,然後事情開始變得有趣了。我開始重新格式化我的現有頁面使用母版頁,但現在我讓我的調用錯誤,從編輯頁面的公共屬性(RTM23a.aspx):
Master.PageTitle = "My New Page Title";
給人試圖運行時,這個錯誤頁面:'System.Web.UI.MasterPage'沒有包含'PageTitle'的定義,也沒有找到接受'System.Web.UI.MasterPage'類型的第一個參數的擴展方法'PageTitle'使用指令或程序集引用?)。
這個確切的調用從TestMstr工作正常。我知道TestMstr和RTM23a的內容是相同的,因爲我將TestMstr複製到Report1並將TestMstr更改爲RTM23a。在RTM23a中,輸入'Master'。給intellisense顯示PageTitle屬性。構建 - >構建頁面,構建 - >構建網站和構建 - >重建網站菜單項不會給出任何錯誤 - 僅警告。以下是兩個文件的CMD shell文件比較(FC)。
ASPX文件:
隱藏文件Comparing files TestMstr.aspx and RTM23A.ASPX
***** TestMstr.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="TestMstr.aspx.cs" Inherits="TestMstr" %>
<%@ MasterType virtualpath="~/MasterPage.master" %>
***** RTM23A.ASPX
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="RTM23a.aspx.cs" Inherits="RTM23a" %>
<%@ MasterType virtualpath="~/MasterPage.master" %>
*****
代碼:
Comparing files TestMstr.aspx.cs and RTM23A.ASPX.CS
***** TestMstr.aspx.cs
public partial class TestMstr : System.Web.UI.Page
{
***** RTM23A.ASPX.CS
public partial class RTM23a : System.Web.UI.Page
{
*****
***** TestMstr.aspx.cs
private int _iMon, _iYr;
private RptTestMstr _StateDur;
***** RTM23A.ASPX.CS
private int _iMon, _iYr;
private RptRtaWFStages _StateDur;
*****
***** TestMstr.aspx.cs
{
_StateDur = new RptTestMstr(_iYr, _iMon);
_StateDur.RtaInput = this.txtRtaNos.Text;
***** RTM23A.ASPX.CS
{
_StateDur = new RptRtaWFStages(_iYr, _iMon);
_StateDur.RtaInput = this.txtRtaNos.Text;
*****
***** TestMstr.aspx.cs
// End TestMstr class definition
}
***** RTM23A.ASPX.CS
// End RTM23a class definition
}
*****
怎麼可能是造成這個問題呢?這些頁面在同一個項目中,並且一切看起來都正確,但其中一個運行,另一個不運行。清楚的是,TestMstr是通過從頭開始選擇母版頁創建的,而RTM23a最初是在未選擇母版頁的情況下創建的,然後編輯成類似於TestMstr。
更新: RTM23a在服務器上正常工作。這似乎只是我的調試中斷了。