2013-07-03 105 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