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); } } }