zoukankan      html  css  js  c++  java
  • 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。http://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);
            }
        }
    }

  • 相关阅读:
    Oracle SQL语句大全(一)
    数据查询(3)-复杂查询(芮)
    数据查询(2)-高级查询(芮)
    数据查询(1)-简单查询(芮)
    T-SQL(5)-操作数据行(芮)
    T-SQL(4)-功能函数(芮)
    T-SQL(3)-批处理(芮)
    T-SQL(2)-逻辑控制(芮)
    T-SQL(1)-变量(芮)
    如何设计数据库(2)?(芮)
  • 原文地址:https://www.cnblogs.com/SALIN/p/1641301.html
Copyright © 2011-2022 走看看