2013-07-03 153 views
0

我下面這篇文章對我的ASP.NET網站創建持久登錄的Cookie:持久登錄

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.encrypt.aspx

的問題是,當我瀏覽網頁時,我得到以下編譯器錯誤:

Compiler Error Message: CS1061: 'ASP.administration_login_aspx' does not contain a definition for 'Login_Click' and no extension method 'Login_Click' accepting a first argument of type 'ASP.administration_login_aspx' could be found (are you missing a using directive or an assembly reference?)

誰能告訴我這是爲什麼。錯誤消息並沒有真正說太多,我不相信我缺少指令或程序集引用。代碼生成沒有任何問題。

編輯:我不包括代碼,因爲我說我下面這個鏈接,其中包括代碼。我從示例複製/粘貼。

+0

先顯示您的代碼 –

+2

確保該方法是公開的或受保護的,並且簽名是正確的。 –

+0

檢查我對編碼的編輯。 – Trido

回答

5

example實際上是正確,因爲代碼是內嵌的(在<script runat="server">塊內)。 ASP.NET編譯器使用包含的代碼創建一個臨時類,並將其編譯到臨時目錄中的DLL中。由於事件處理程序綁定在同一個生成的類中,因此它可以是私有的。

但是,如果您使用的是後面的代碼,ASP.NET編譯器實際上會生成一個臨時類,會從您的代碼中派生出。出於這個原因,事件處理程序需要是公共的或保護的,以便它可以被子類訪問。

+0

我沒有意識到這個區別,感謝教育我!我沒有將C#添加到後面的代碼中。 – Trido