ASP.net在页面所有内容生成后、输出内容前对页面内容进行操作
以前曾说过用HttpModule来在Response前更改Cookie,今天遇到Asp.net自做主张,把我辛苦转换的汉字ꪻ这样的表现形式,又转成汉字,别说是Asp.net的Web控件,就是Html控件Ranat=server都会被它强行转换成汉字输出。
如果把页面内容一行行用Response写出来,那样太累,而且容易出错。所以最好的办法是在Asp.net的生成动作完成之后,再进行一次转换,这样Asp.net就拿你没有办法了。
Asp.net的所有生成动作在Render方法中完成,那么我们就对Render方法进行手术:
protected override void Render(HtmlTextWriter writer)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlw = new HtmlTextWriter(sw);
//把页面生成内容拿出来
base.Render(htmlw);
htmlw.Flush();
htmlw.Close();
string pageContent = sw.ToString();
//对内容进行修改
pageContent = KillTheBugAndShit(pageContent);
Response.Write(pageContent);
//base.Render (writer);
}
使用这种方法,也可以把页面生成的内容拿出来生成静态页面使用。
相关推荐
-
laravel 实现登陆后返回登陆前的页面方法
最近做了一个项目,需要用户登录后,返回登陆前的页面. 一般的逻辑是,用户访问某个页面,判断未登录,跳转到登陆界面,登陆成功后,返回访问前的页面. 按照laravel的一般情况来做: //头部引入 use URL //登陆成功后执行 return redirect(URL::previous()); 结果发现跳转的是登陆页面,感觉很奇怪,最后发现是,我的登陆提交是一个新的方法,导致要返回之前的页面,需要返回2次才可以. 解决,在跳转到登陆界面的时候,将上次的网址记录,登陆成功后,跳转到记录的网址,
-
ASP.net在页面所有内容生成后、输出内容前对页面内容进行操作
以前曾说过用HttpModule来在Response前更改Cookie,今天遇到Asp.net自做主张,把我辛苦转换的汉字ꪻ这样的表现形式,又转成汉字,别说是Asp.net的Web控件,就是Html控件Ranat=server都会被它强行转换成汉字输出. 如果把页面内容一行行用Response写出来,那样太累,而且容易出错.所以最好的办法是在Asp.net的生成动作完成之后,再进行一次转换,这样Asp.net就拿你没有办法了. Asp.net的所有生成动作在Render方法中完成,那么我们就对R
-
Smarty实现页面静态化(生成HTML)的方法
本文实例讲述了Smarty实现页面静态化(生成HTML)的方法.分享给大家供大家参考,具体如下: 为了减少数据库读取次数,某些内容不经常被更改的页面,比如文章详细页面需要做成HTML静态页面. 在使用Smarty的情况下,也可以实现页面静态化.下面先简单说一下使用Smarty时通常动态读取的做法. 一般分这几步: 1.通过URL传递一个参数(ID): 2.然后根据此ID查询数据库: 3.取得数据后根据需要修改显示内容: 4.assign需要显示的数据: 5.display模板文件. Smarty
-
Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)
本文实例讲述了Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.IO; public partial
-
在django中实现页面倒数几秒后自动跳转的例子
实现倒计时跳转要和html中的js结合起来, 例如:实现一个页面简单的注册,然后注册成功后倒计时自动跳转到登录页面. # 注册页面 def register(request): return render(request,"register.html") # 点击注册 def doregister(request): # 获得用户输入的信息,保存到数据库 username=request.GET.get("username") password=request.GE
-
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
首先我们会想着在mounted或者created里面加入想要执行的方法,但是有的时候会遇到在你执行这个方法的时候,页面还并没有被渲染完成,所以就会出现这个方法在匹配页面标签报错的情况. 解决思路: 1.通过子页面调用父页面的方法,因为在子页面开始渲染的时候,你的父页面肯定是已经渲染好了的,前提这里的方法中是去找寻父页面的标签. 2.直接在本页面监视一个参数,发现参数被初始化了,说明页面也已经加载完成,因为你的页面用到了这个参数. 方法1案例:tab页里的子页面如果没有内容就隐藏 父页面代码 <e
-
ASP.NET 4中的可扩展输出缓存(可以缓存页面/控件等)
输出缓存的前世今生 ASP.NET 1.0引入输出缓存的概念,这使得开发者可以缓存页面.控件.控制器以及HTTP响应的输出到内存中.在后续的Web请求,ASP.NET就可以使用缓存中的内容更快响应. ASP.NET的输出缓存系统足够灵活,使得我们可以根据不同的查询字符串或者表单post参数来缓存不同版本的内容.例如test.aspx?category=Vegerable 和 test.aspx?category.aspx?category=Meat.它也允许我们根据浏览器类型或者用户语言偏好来缓
-
Asp.net 中mvc 实现超时弹窗后跳转功能
为了实现保持登录状态,可以用cookie来解决这一问题 假设过期时间为30分钟,校验发生在服务器,借助过滤器,可以这样写 public class PowerFilter : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { var cookie = HttpContext.Current.Request.Cookies["loginInfo"]
-
asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数据
第一次进入aspx页面,就要读取出大量数据.写入页面中.使用都在页面要有添删改的操作,而且只有当点击面的保存按钮才能真正的写入到数据库中.因此我选择了Ajax+JSON的方式来实现这个页面. 复制代码 代码如下: <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"> <Scripts> <asp:ScriptRe
-
asp.net利用后台实现直接生成html分页的方法
本文实例讲述了asp.net利用后台实现直接生成html分页的方法,是一个比较实用的功能.分享给大家供大家参考之用.具体方法如下: 1.建立存储过程: ALTER procedure [dbo].[p_news_query] @Page int as begin select top 5 new_id,new_title,new_url,new_content_text,create_time,user_name from (select *,ROW_NUMBER() over(order by
随机推荐
- jquery获取复选框被选中的值
- JSP Session超时设置的实现方法
- asp图片加水印的功能代码
- dos利用wget.exe让杀毒软件升级更自动化
- Cacls 显示或修改任意访问控制列表 (DACL) 文件
- java中break和continue源码解析
- Xen虚拟机的详细迁移步骤详解
- Repeater中添加按钮实现点击按钮获取某一行数据的方法
- PHP接收json 并将接收数据插入数据库的实现代码
- Admin generator, filters and I18n
- HTML下在IE浏览器中的专有条件注释讲解
- 几个不错的世界之最
- 关于在Servelet中如何获取当前时间的操作方法
- CentOS 7中MySQL连接数被限制为214个的解决方法
- 瀑布流布局并自动加载实现代码
- C#编写COM组件的方法分析
- Android ListView实现ImageLoader图片加载的方法
- java 重定义数组的实现方法(与VB的ReDim相像)
- struts2中使用注解配置Action方法详解
- Python循环语句中else的用法总结