都是Login惹得祸

   ASP.net 2.0的推出对我们程序员来说是再好不过的事情了,不仅功能更丰富了,而且使我们的开发效率大大提高,不过什么东西都有两面性,asp.net2.0所带来的新控件给我们的开发带来方便的同时,却在某些方面与我们的习惯相冲突。
        最近用asp.net做系统,很习惯的在做用户认证的部分建了一个新的网页名字是Login.aspx,当然不管你是编译也好调试也好都没有问题,一切如你希望的那样。但是,当你publish了你的系统,建立了虚拟目录,然后通过IE浏览的时候,问题出现了,页面会显示“ Cannot convert type 'ASP.login_aspx' to 'System.Web.UI.WebControls.Login' ”。仔细想了想,ASP.net2.0本身附带了Login控件,回过头看看自己创建的Login.aspx页面自动生成CodeBehind类也叫Login,这正好和系统的Login控件冲突了。既然冲突了,那就换个名字吧,可以长久以来登录的页面都是Login,如果叫个LoginPage,感觉怪怪的。我想不改页面的名字有不想使两个类的名字冲突,那就给codebehind类加个名字空间,结果呢?编译都通不过,问题在哪里呢?看看codebehind类的声明就明白了:
None.gif public  partial  class  Login : System.Web.UI.Page
partial表明了这只是类的一部分,另外的部分是不可见的,不可见当然就不能修改了。但是,vs2005给我提供了rename的功能,当你修改类的声明的时候,vs会将这个类的其它部分自动rename,所以如果你用文本编辑器修改代码的话,肯定会出问题的。所以解决的方法就是,不修改页面的名字,只修改类的名字,然后修改页面中Inherits的指定了,例如,你将类的名字修改为Mylogin,然后在页面中将Inherits的指定改为:
None.gif <% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " Login.aspx.cs "  Inherits = " MyLogin "   %>
修改完后测试,一切正常。





本文转自纶巾客博客园博客,原文链接:http://www.cnblogs.com/guanjinke/archive/2006/03/19/353591.html,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值