当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET中内嵌页面代码的一个问题

ASP.NET
C#中使Datawindow.Net组件处理数据
在.net开发中几个重要的认识误区(1)
WML教程11:文本框控件(Input)
WML教程6:动作和链接
在WEB自定义控件中实现事件及自动保存值
WML教程14:WML 文本处理
表单启动太慢时显示一个等待图标(类似Windows下的时间沙漏)
ADO.NET学习笔记(二)
使用HttpContext中的User属性来实现用户身份验证之用户验证票篇
由DataGrid翻页所导致的诸多问题的解决方案
动态加载类的原理:元数据的使用
用C#实现Des加密和解密
快速对图片进行滤光处理
可以代替窗体Refresh方法的函数
『原创』适合初学的简单3D碰撞检测初探(对于3D编程初学人员)
《Essential .Net》读书笔记 - Chapter 3
Lion.Web.WebHtmlEditor 1.0 Hack 攻略
数据库事务处理的另外一种方法
[WSE]Web Service—后台侦听服务通过WSE2.0建立订阅/发布关系
给windows服务添加描述

ASP.NET中内嵌页面代码的一个问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 144 ::
收藏到网摘: n/a

如果页面继承了一个父页面,而且当前页面用new覆盖了父页面的某个属性 比如
父页面:
复制代码 代码如下:

public class BasePage : System.Web.UI.Page
{
public int HotelID
{
get
{
return 1;
}
}
}

子页面:
复制代码 代码如下:

public partial class UpdateAlbumAttachments : BasePage
{
public new int HotelID
{
get
{
return 0;
}
}
}

则在*.aspx中写签入代码时只会读取this.HotelID,即使用base.HotelID读取到的属性值仍然是this.HotelID
比如在UpdateAlbumAttachments.aspx中写<%=base.HotelID %>获取到的是0而不是应该的1
当然如果在后台代码中肯定是能得到base.HotelID的
只能重不同的名字来区分,不懂为什么,算ASP.NET的bug么?
((BasePage) this).HotelID 可以得到1