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 On FormPostRender(HtmlTextWriter writer, string formUniqueID) ...

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



本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
JavaScript 前端开发
HTML跳转到页面指定元素位置
本文目录 1. 背景 2. 通过jQuery实现 3. 通过超链接实现 4. 对比总结
479 0
|
Java
html替换成jsp界面字体图标不显示问题
html替换成jsp界面字体图标不显示问题
54 0
|
10月前
|
前端开发 JavaScript
基于Html对父页面打开子页面Dialog()的使用
作者在使用基于QUI的前端项目中遇到一个问题:无法在Dialog组件中提交后刷新列表页面。经过搜索和努力,找到了解决方案。通过创建新的`top.Dialog()`,设置相关属性如标题、URL、尺寸,并在OK事件中调用子页面的提交方法及刷新列表的方法实现了需求。提供的代码示例展示了如何打开编辑窗体并处理提交事件以刷新列表。
123 0
html 按钮的三种形式
第一种:form表单 中使用<button>提交表单 <button class="btn btn-primary"><i class="fa fa-search"></i>商品搜索</button> 第二种 <input type="submit"> <input type="submit" class="btn 
1791 0
|
移动开发 Java HTML5
HTML5 学习14.列表框文本域和文件域
HTML5 学习14.列表框文本域和文件域
|
Web App开发
HTML中利用WebBrowser控件进行打印页面的控制
我们知道,web中打印并不容易。 但是利用IE浏览器自带的 Web Browser控件,我们可以轻松地做到控制打印页面设置,包括横向,纵向排列,打印预览等。 调用该控件很简单,只需要在html代码中加入如下语句即可:   下面我们给出具体代码:     Use WebBrowser For Print                .
921 0