2013-11-27 110 views
0

使用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在服務器上正常工作。這似乎只是我的調試中斷了。

回答

0

文件系統將RTM23a和代碼複製到項目文件夾之外,然後使用IDE UI刪除文件。接下來,在VWD中仍然打開項目,文件系統將文件複製回項目文件夾,並使用Add Existing Item ...菜單添加它們。所以問題解決了,但是神祕的東西依然存在。以前也關閉ASP.NET開發服務器無濟於事。