ASPX页面中不放置Form元素的问题
在整理项目里面的代码时,结果被一个失误郁闷了一下
。
事情是这样的,原来项目里面有几个页面是*.htm格式的,后来为了统一管理资源方便,就把文件改成了*.aspx的了。当然这样做是没有任何的问题,同时VS.NET也自动的添加上了相应的*.cs和*.resx文件。于是一段动态的脚本也通过Page.RegisterStartupScript()方法,来注册到页面上去。可是问题就来了,运行页面不能得到预期效果,察看aspx页面生成的html代码,居然没有发现动态注册上的代码
。
乱七八糟搞了半天也不得要领,不知道这个Page.RegisterStartupScript()方法出了什么问题。换了Page.RegisterClientScriptBlock()来做试验,还是什么都不能输出,真不知道ASP.NET搞得什么飞机!这样的东西也不象是bug,否则这ASP.NET还能用吗?! 郁闷了一会儿后,想想那么看看这些脚本注册方法是怎么工作的吧。于是打开Reflector,在Page类中很容易得就找到了这么一段代码:
this.RenderHiddenFields(writer);
if (this._fRequirePostBackScript && !this._fPostBackScriptRendered)
{
this.RenderPostBackScript(writer, formUniqueID);
}
this.RenderScriptBlock(writer, this._registeredClientStartupScripts);
this._inOnFormRender = false;

继续向上看,这个方法的名字叫做:internal void OnFormPostRender(HtmlTextWriter writer, string formUniqueID) ...
突然明白了原来Page.RegisterXxx()等方法需要依赖服务器端Form控件。于是跑回那些*.htm文件中一看,由于那些文件本身不用提交,所以其内容中别说服务器端Form,就连HTML Form都没有的说。于是马上加上服务器端Form控件后,问题立即解决
。

事情是这样的,原来项目里面有几个页面是*.htm格式的,后来为了统一管理资源方便,就把文件改成了*.aspx的了。当然这样做是没有任何的问题,同时VS.NET也自动的添加上了相应的*.cs和*.resx文件。于是一段动态的脚本也通过Page.RegisterStartupScript()方法,来注册到页面上去。可是问题就来了,运行页面不能得到预期效果,察看aspx页面生成的html代码,居然没有发现动态注册上的代码

乱七八糟搞了半天也不得要领,不知道这个Page.RegisterStartupScript()方法出了什么问题。换了Page.RegisterClientScriptBlock()来做试验,还是什么都不能输出,真不知道ASP.NET搞得什么飞机!这样的东西也不象是bug,否则这ASP.NET还能用吗?! 郁闷了一会儿后,想想那么看看这些脚本注册方法是怎么工作的吧。于是打开Reflector,在Page类中很容易得就找到了这么一段代码:








继续向上看,这个方法的名字叫做:internal void OnFormPostRender(HtmlTextWriter writer, string formUniqueID) ...
突然明白了原来Page.RegisterXxx()等方法需要依赖服务器端Form控件。于是跑回那些*.htm文件中一看,由于那些文件本身不用提交,所以其内容中别说服务器端Form,就连HTML Form都没有的说。于是马上加上服务器端Form控件后,问题立即解决

posted on 2005-07-22 22:22 birdshome 阅读(2199) 评论(1) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器