为什么是if(Page.IsValid ){...}而不是if(this.IsValid ){...}?

hsb0307 2004-01-13 02:30:52
在Duwamish7.Web的用户控件:AccountModule中,有下面一句:
foreach(IValidator val in Page.Validators)
{
val.Validate();
}

if ( Page.IsValid )
{
if ( moduleEditMode )......

在MSDN介绍Page类的IsValid属性时有下面一句:
if (Page.IsValid == true) {
lblOutput.Text = "Page is Valid!";
}
这里,为什么是if(Page.IsValid ){...}而不是if(this.IsValid ){...}?

IsValid属性的定义是:
public bool IsValid {get;}并不是静态属性呀.
...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsb0307 2004-01-14
  • 打赏
  • 举报
回复
感谢xxdneu(xxd) 。

关键是this.Page代表的是aspx页面,而this代表的是aspx页面后置代码类。



老兄,再帮我看看这个:

120分:关于企业及模板项目中的“VC#简单分布式应用”的问题。
http://expert.csdn.net/Expert/topic/2657/2657659.xml?temp=.4597284
xxdneu 2004-01-14
  • 打赏
  • 举报
回复
后置代码类也是从page继承下来的,除了可以在派生类里写自己的成员,我不知道有什么不同啊,你只要不重写基类的方法,我想用Page调用IsValid和用this调用都是一样的
hsb0307 2004-01-14
  • 打赏
  • 举报
回复
MSDN说,用VS.NET时,aspx页面和aspx页面的C#代码,不是一个类,aspx页面的类继承自aspx页面C#代码的类,这样Page.IsValid应该是aspx页面的属性,而不是aspx页面后置代码类的属性。是这样吗?
hsb0307 2004-01-13
  • 打赏
  • 举报
回复
老兄,再帮我看看这个:

120分:关于企业及模板项目中的“VC#简单分布式应用”的问题。
http://expert.csdn.net/Expert/topic/2657/2657659.xml?temp=.4597284
xxdneu 2004-01-13
  • 打赏
  • 举报
回复
对于一个aspx页面的代码来说这确实是这样的,
Page.IsValid等效于this.Page.IsValid

Page对象的Page属性也是从Control继承下来的,本身并没有这个属性
hsb0307 2004-01-13
  • 打赏
  • 举报
回复
这样是否就表示Page.IsValid等效于this.Page.IsValid 了吗?

this.IsValid表示代码后置页面类的IsValid属性。
this.Page.IsValid表示被请求的*.aspx页面类的IsValid属性。
是这样吗?
xxdneu 2004-01-13
  • 打赏
  • 举报
回复
IsValid并不是静态属性,而是 Page对象本身有个Page属性
获取对包含服务器控件的 Page 实例的引用。
shenanigan 2004-01-13
  • 打赏
  • 举报
回复
页面加载

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧