url重写以后保持postback地址(转)
2010-11-20 09:12
357 查看
URLRewriter.dll用它伪静态以后,虽然URL变了.但是如果有一个服务器端的按钮,点击以后.在显示URL就变会成 ?id=XX 了,,怎么让他回调以后依然URL不变呢??
让所有页面继承一下类即可实现url重写以后保持postback地址。
让所有页面继承一下类即可实现url重写以后保持postback地址。
using System; using System.Web; using System.Web.UI; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Configuration; namespace BLL { /// <summary> /// PageBase 的摘要说明。 /// </summary> public class PageBase : Page { private static object obj = new object(); //// <summary> /// 重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。www.SvnHost.cn /// </summary> /// <param name="writer"></param> protected override void Render(HtmlTextWriter writer) { if (writer is System.Web.UI.Html32TextWriter) { writer = new FormFixerHtml32TextWriter(writer.InnerWriter); } else { writer = new FormFixerHtmlTextWriter(writer.InnerWriter); } base.Render(writer); } } public class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter { public FormFixerHtml32TextWriter(TextWriter writer) : base(writer) { } public override void WriteAttribute(string name, string value, bool encode) { // 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL if (string.Compare(name, "action", true) == 0) { value = HttpContext.Current.Request.RawUrl; } base.WriteAttribute(name, value, encode); } } public class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter { public FormFixerHtmlTextWriter(TextWriter writer) : base(writer) { } public override void WriteAttribute(string name, string value, bool encode) { if (string.Compare(name, "action", true) == 0) { value = HttpContext.Current.Request.RawUrl; } base.WriteAttribute(name, value, encode); } } }
相关文章推荐
- url重写以后保持postback地址
- UrlRewriter重写地址的POSTBACK后,地址还原的解决方法
- url重写以后保持postback地址
- url重写以后postback重写失效解决方案2 PageBase
- mvc3的Url地址重写与优化
- 20170408_OSI参考模型与TCP/IP模型与输入URL地址按下enter键以后发生了什么?
- URL Rewrite(3):在URL Rewrite后保持PostBack地址
- 重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
- Discuz!NT 的URL地址重写(URLRewrite)
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- UrlRewriter url 地址重写
- ASP.NET中获取URL重写前的原始地址
- ASP.NET中获取URL重写前的原始地址
- 关于URL的地址重写,自己也实验了一把!
- URL 重写就是把URL地址重新改写(汗^_^)。
- 重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
- ASP.NET的URL地址重写
- 基于servlet、jsp的url地址重写
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件